<html><head><meta name="color-scheme" content="light dark"></head><body><pre style="word-wrap: break-word; white-space: pre-wrap;">!function() {
    "use strict";
    class e {
    }
    e.APPNAME = "MergeArchers",
    e.stage_width = 1080,
    e.stage_height = 1920,
    e.ore_height = 1920,
    e.ore_width = 1080,
    e.statusBarHeight = 0,
    e.version = 2,
    e.isDebug = !1,
    e.showLog = !0,
    e.noAdv = !1,
    e.moneyType = " coins",
    e.BoingkinMaxNum = 3,
    e.KeyholerskinMaxNum = 5,
    e.StickerkinMaxNum = 3,
    e.skinMaxNum = 12,
    e.maxLevel = 21,
    e.getGold = 40,
    e.watchADGold = 200,
    e.isGameStart = !1,
    e.isloadingScene = !1,
    e.noAdBanner = !1,
    e.isLoadingVideo = !1,
    e.luckBoxTime = 0,
    e.goldEggValue = .5,
    e.baseHp = 90,
    e.ZIP_BASE_URL = "";
    class t {
    }
    t.GOLD = "gold",
    t.ISSOUND = "issound",
    t.ISMUSIC = "ismusic",
    t.ISVIBRATE = "isvibrate",
    t.ISWHITE = "iswhite",
    t.SKININDEX = "skinindex",
    t.BOINGINDEX = "boingindex",
    t.KEYHOLDERINDEX = "Keyholderindex",
    t.STICKERINDEX = "Stickerindex",
    t.UNLOCKSKINLIST = "unlockskinlist",
    t.UNLOCKBOINGLIST = "unlockboinglist",
    t.UNLOCKKEYHOLDERLIST = "unlockkeyholderlist",
    t.UNLOCKSTICKERLIST = "unlockstickerlist",
    t.LEVELINDEX = "levelindex",
    t.REALLYLEVELINDEX = "reallyLevelIndex",
    t.SHOWGUIDE = "showguide",
    t.SIGNDATE = "signDate",
    t.SIGNNUM = "signNum",
    t.MAX_SCORE = "max_score",
    t.SCORE_LEVEL = "score_level",
    t.INCOME_LEVEL = "income_level",
    t.SHOWYSXY = "showysxy",
    t.BUY_TIMES = "buy_times",
    t.ROLE_POS = "role_pos",
    t.HAS_BOMB = "has_bomb";
    class i {
        static shortText(e) {
            return e &amp;&amp; e.length &gt; 5 ? e.slice(0, 5) + "..." : e
        }
        static getRepeatNumInList(e, t) {
            let i = [];
            for (let s = 0; s &lt; e.length; s++)
                e[s] == t &amp;&amp; i.push(t);
            return i.length
        }
        static formatToUnitEN(e) {
            return ("" + (e = Math.round(e))).length &gt; 15 ? (e / 1e15).toFixed(2) + "MB" : ("" + e).length &gt; 12 ? (e / 1e12).toFixed(2) + "KB" : ("" + e).length &gt; 9 ? (e / 1e9).toFixed(2) + "B" : ("" + e).length &gt; 6 ? (e / 1e6).toFixed(2) + "M" : ("" + e).length &gt; 3 ? (e / 1e3).toFixed(2) + "K" : "" + e.toFixed(0)
        }
        static shuffle(e) {
            let t, i, s = e.length;
            for (; --s; )
                i = Math.floor(Math.random() * s),
                t = e[s],
                e[s] = e[i],
                e[i] = t;
            return e
        }
        static getRad(e, t, i) {
            return t &lt; 0 ? Math.acos(e / i) : 2 * Math.PI - Math.acos(e / i)
        }
        static getTot(e, t, i=!1) {
            let s = Math.sqrt(Math.pow(e, 2) + Math.pow(t, 2))
              , n = this.getRad(e, t, s);
            return 180 / Math.PI * n - 90 * (i ? -1 : 1)
        }
        static randNum(e, t) {
            var i = t - e
              , s = Math.random();
            return e + Math.round(s * i)
        }
        static getBrowser() {
            return Laya.Browser.onMiniGame ? Laya.Browser.window.wx : Laya.Browser.onQQMiniGame ? Laya.Browser.window.qq : Laya.Browser.onTTMiniGame ? Laya.Browser.window.tt : Laya.Browser.onQGMiniGame ? Laya.Browser.window.qg : Laya.Browser.onVVMiniGame ? Laya.Browser.window.qg : null
        }
        static getIsMini() {
            return !!(Laya.Browser.onMiniGame || Laya.Browser.onBDMiniGame || Laya.Browser.onKGMiniGame || Laya.Browser.onQGMiniGame || Laya.Browser.onQQMiniGame || Laya.Browser.onBLMiniGame || Laya.Browser.onTTMiniGame || Laya.Browser.onVVMiniGame)
        }
        static checkRepeatItem(e) {
            let t = {};
            return e.every(e=&gt;!t[e] &amp;&amp; (t[e] = !0))
        }
        static getChildNodesArray(e) {
            let t = [];
            for (let i = 0; i &lt; e.numChildren; i++) {
                let s = e.getChildAt(i);
                s &amp;&amp; t.push(s)
            }
            return t
        }
        static FindAndGetAllChildren(e, t) {
            if (e.numChildren &gt; 0) {
                this.getChildNodesArray(e).forEach(e=&gt;{
                    if (t.push(e),
                    !(this.getChildNodesArray(e).length &gt; 0))
                        return t;
                    this.FindAndGetAllChildren(e, t)
                }
                )
            }
            return null
        }
        static getAllChildrenArray(e) {
            let t = [];
            return this.FindAndGetAllChildren(e, t),
            t
        }
        static getAllChildrenMap(e) {
            let t = e.id
              , i = this.nodeDic[t];
            if (!i) {
                let s = this.getAllChildrenArray(e);
                i = new Map;
                for (let e = 0; e &lt; s.length; e++)
                    i.has(s[e].name) || i.set(s[e].name, s[e]);
                this.nodeDic || (this.nodeDic = new Array),
                this.nodeDic[t] = i
            }
            return i
        }
        static getNodeByMap(e, t) {
            return t.has(e) ? t.get(e) : null
        }
        static getNodeByName(e, t) {
            let i = t.id
              , s = this.nodeDic[i];
            if (!s) {
                let e = this.getAllChildrenArray(t);
                s = new Map;
                for (let t = 0; t &lt; e.length; t++)
                    s.has(e[t].name) || s.set(e[t].name, e[t]);
                this.nodeDic[i] = s
            }
            return s.has(e) ? s.get(e) : null
        }
    }
    i.nodeDic = {};
    class s {
        static get instacne() {
            return this._instance ? this._instance : this._instance = new s
        }
        static getItem(t) {
            return Laya.LocalStorage.getItem(e.APPNAME + "_" + t)
        }
        static setItem(t, i) {
            Laya.LocalStorage.setItem(e.APPNAME + "_" + t, i)
        }
        static get showGuide() {
            return null == this.getItem(t.SHOWGUIDE) || null == this.getItem(t.SHOWGUIDE) || "" == this.getItem(t.SHOWGUIDE) ? (this.setItem(t.SHOWGUIDE, "1"),
            1) : Number(this.getItem(t.SHOWGUIDE))
        }
        static set showGuide(e) {
            this.setItem(t.SHOWGUIDE, e.toString())
        }
        static get skinIndex() {
            return null == this.getItem(t.SKININDEX) || null == this.getItem(t.SKININDEX) || "" == this.getItem(t.SKININDEX) ? (this.setItem(t.SKININDEX, "0"),
            0) : Number(this.getItem(t.SKININDEX))
        }
        static set skinIndex(e) {
            this.setItem(t.SKININDEX, e.toString())
        }
        static get gold() {
            return this.getItem(t.GOLD) ? this._gold = Number(this.getItem(t.GOLD)) : (this._gold = 0,
            this.setItem(t.GOLD, this._gold.toString())),
            this._gold
        }
        static set gold(e) {
            this._gold = e,
            this.setItem(t.GOLD, this._gold.toString())
        }
        static get reallyLevelIndex() {
            if (s.levelIndex &lt;= e.maxLevel)
                return s.levelIndex;
            if (this._reallyLevelIndexList &amp;&amp; this._reallyLevelIndexList.length &gt; 0) {
                for (let e = 0; e &lt; this._reallyLevelIndexList.length; e++) {
                    let t = this._reallyLevelIndexList[e];
                    if (t.level == s.levelIndex)
                        return 5 == t.reallyLevel ? 6 : t.reallyLevel
                }
                let i = Math.ceil(Math.random() * e.maxLevel);
                5 == i &amp;&amp; (i += 1);
                let n = {
                    level: s.levelIndex,
                    reallyLevel: i
                };
                this._reallyLevelIndexList.push(n);
                let a = JSON.stringify(this._reallyLevelIndexList);
                return this.setItem(t.REALLYLEVELINDEX, a),
                i
            }
            {
                let i = this.getItem(t.REALLYLEVELINDEX);
                if (null == i || "" == i) {
                    this._reallyLevelIndexList = new Array;
                    let i = Math.ceil(Math.random() * e.maxLevel);
                    5 == i &amp;&amp; (i += 1);
                    let n = {
                        level: s.levelIndex,
                        reallyLevel: i
                    };
                    this._reallyLevelIndexList.push(n);
                    let a = JSON.stringify(this._reallyLevelIndexList);
                    return this.setItem(t.REALLYLEVELINDEX, a),
                    i
                }
                {
                    let n = JSON.parse(i);
                    this._reallyLevelIndexList = n;
                    for (let e = 0; e &lt; this._reallyLevelIndexList.length; e++) {
                        let t = this._reallyLevelIndexList[e];
                        if (t.level == s.levelIndex)
                            return 5 == t.reallyLevel ? 6 : t.reallyLevel
                    }
                    let a = Math.ceil(Math.random() * e.maxLevel);
                    5 == a &amp;&amp; (a += 1);
                    let o = {
                        level: s.levelIndex,
                        reallyLevel: a
                    };
                    this._reallyLevelIndexList.push(o);
                    let l = JSON.stringify(this._reallyLevelIndexList);
                    return this.setItem(t.REALLYLEVELINDEX, l),
                    a
                }
            }
        }
        static get SignNum() {
            return this._signNum = this.getItem(t.SIGNNUM) ? Number(this.getItem(t.SIGNNUM)) : 0,
            this._signNum
        }
        static set SignNum(e) {
            this._signNum = e,
            this._signNum &gt; 7 &amp;&amp; (this._signNum = 0),
            this.setItem(t.SIGNNUM, this._signNum.toString())
        }
        static get SignDate() {
            return this.getItem(t.SIGNDATE) ? this._signDate = JSON.parse(this.getItem(t.SIGNDATE)) : this._signDate = {
                d: 0,
                m: 0,
                y: 0
            },
            this._signDate
        }
        static set SignDate(e) {
            this._signDate = e,
            this.setItem(t.SIGNDATE, JSON.stringify(this._signDate))
        }
        static get levelIndex() {
            return -1 == this._levelIndex ? (this._levelIndex = Number(this.getItem(t.LEVELINDEX)),
            0 == this._levelIndex ? (this._levelIndex = 1,
            this.setItem(t.LEVELINDEX, this._levelIndex.toString()),
            this._levelIndex) : this._levelIndex) : this._levelIndex
        }
        static set levelIndex(e) {
            this._levelIndex = e,
            this.setItem(t.LEVELINDEX, this._levelIndex.toString())
        }
        static get unlockSkinList() {
            if (null == this.getItem(t.UNLOCKSKINLIST) || null == this.getItem(t.UNLOCKSKINLIST) || "" == this.getItem(t.UNLOCKSKINLIST)) {
                let e = [0];
                return this.setItem(t.UNLOCKSKINLIST, JSON.stringify(e)),
                e
            }
            return JSON.parse(this.getItem(t.UNLOCKSKINLIST))
        }
        static set unlockSkinList(e) {
            this.setItem(t.UNLOCKSKINLIST, JSON.stringify(e))
        }
        static get randUnLockSkin() {
            if (null == this.unlockSkinList || this.unlockSkinList.length &gt;= e.skinMaxNum)
                return -1;
            let t, s = [];
            for (let t = 0; t &lt; e.skinMaxNum; t++)
                -1 == this.unlockSkinList.indexOf(t) &amp;&amp; s.push(t);
            return t = s[i.randNum(0, s.length - 1)]
        }
        static get littleShare() {
            return -1 == this._littleShare &amp;&amp; (this._littleShare = Number(this.getItem("littleShare"))),
            s._littleShare
        }
        static set littleShare(e) {
            this._littleShare = e,
            this.setItem("littleShare", this._littleShare.toString())
        }
        static get isSpecialScene() {
            return this._isSpecialScene = !!this.getItem("isSpecialScene"),
            s._isSpecialScene
        }
        static set isSpecialScene(e) {
            s._isSpecialScene = e,
            s._isSpecialScene &amp;&amp; this.setItem("isSpecialScene", "1")
        }
        static get showYsxy() {
            return this._showYsxy || (this._showYsxy = !!Number(this.getItem(t.SHOWYSXY))),
            this._showYsxy
        }
        static set showYsxy(e) {
            this._showYsxy = e,
            this.setItem(t.SHOWYSXY, this._showYsxy ? "1" : "0")
        }
        static get MaxScore() {
            return this._MaxScore = this.getItem(t.MAX_SCORE) ? Number(this.getItem(t.MAX_SCORE)) : 0,
            this._MaxScore
        }
        static set MaxScore(e) {
            this._MaxScore = e,
            this.setItem(t.MAX_SCORE, e.toString())
        }
        static get ScoreLevel() {
            return s._ScoreLevel = this.getItem(t.SCORE_LEVEL) ? Number(this.getItem(t.SCORE_LEVEL)) : 0,
            s._ScoreLevel
        }
        static set ScoreLevel(e) {
            s._ScoreLevel = e,
            this.setItem(t.SCORE_LEVEL, s._ScoreLevel.toString())
        }
        static get IncomeLevel() {
            return s._IncomeLevel = this.getItem(t.INCOME_LEVEL) ? Number(this.getItem(t.INCOME_LEVEL)) : 0,
            s._IncomeLevel
        }
        static set IncomeLevel(e) {
            s._IncomeLevel = e,
            this.setItem(t.INCOME_LEVEL, s._IncomeLevel.toString())
        }
        static get BuyTimes() {
            return this._BuyTimes = this.getItem(t.BUY_TIMES) ? Number(this.getItem(t.BUY_TIMES)) : 0,
            this._BuyTimes
        }
        static set BuyTimes(e) {
            this._BuyTimes = e,
            this.setItem(t.BUY_TIMES, e.toString())
        }
        static get RolePosData() {
            return this.getItem(t.ROLE_POS) ? this._RolePosData = JSON.parse(this.getItem(t.ROLE_POS)) : (this._RolePosData = {
                0: 0,
                1: 0,
                2: 0,
                3: 0,
                4: 1,
                5: 0
            },
            this.setItem(t.ROLE_POS, JSON.stringify(this._RolePosData))),
            this._RolePosData
        }
        static set RolePosData(e) {
            this._RolePosData = e,
            this.setItem(t.ROLE_POS, JSON.stringify(e))
        }
    }
    s._levelIndex = -1,
    s.skinTryCount = 0,
    s._littleShare = -1,
    s._showYsxy = !1;
    class n {
    }
    n.wxId = "1206089",
    n.openId = "",
    n.login_city = "";
    class a {
        static log(t, ...i) {
            e.showLog &amp;&amp; console.log(t, ...i)
        }
        static info(t, ...i) {
            e.showLog &amp;&amp; console.info(t, ...i)
        }
        static error(t, ...i) {
            e.showLog &amp;&amp; console.error(t, ...i)
        }
        static warn(t, ...i) {
            e.showLog &amp;&amp; console.warn(t, ...i)
        }
    }
    class o {
        static isSpecialScene() {
            return !!s.isSpecialScene || !!this.video_Switch &amp;&amp; -1 != this.video_Sence.indexOf(e.scene)
        }
        static get OpenClick() {
            return this.islinshiWhite &amp;&amp; this._OpenClick
        }
        static set OpenClick(e) {
            this._OpenClick = e
        }
        static get OpenVideo() {
            return this.islinshiWhite &amp;&amp; this._OpenVideo
        }
        static set OpenVideo(e) {
            this._OpenVideo = e
        }
        static get isShowHuTui() {
            return -1 == this._ishutui ? (this.isPos ? this.islinshiWhite || (this.ishutui ? this._ishutui = 1 : this._ishutui = 0) : this._ishutui = 0,
            !!this._ishutui) : !!this._ishutui
        }
        static reSetWhite(e) {
            if (this.theposList = e,
            -1 != this.pos &amp;&amp; null != this.pos &amp;&amp; null != this.pos &amp;&amp; e &amp;&amp; e.length &gt; 0)
                for (let i = 0; i &lt; e.length; i++)
                    this.pos == e[i] &amp;&amp; (this._isWhite = 0,
                    Laya.LocalStorage.setItem(t.ISWHITE, "false"),
                    this.isPos = !1)
        }
        static get isWhite() {
            if (-1 != this._isWhite)
                return !!this._isWhite;
            {
                let e = Laya.LocalStorage.getItem(t.ISWHITE);
                if ("true" == e)
                    return this._isWhite = 1,
                    !!this._isWhite;
                if ("false" == e)
                    return this._isWhite = 0,
                    !!this._isWhite;
                if (!e)
                    return this._isWhite = 0,
                    Laya.LocalStorage.setItem(t.ISWHITE, "false"),
                    !!this._isWhite
            }
        }
        static set isWhite(e) {
            if (null == Laya.LocalStorage.getItem(t.ISWHITE) || "" == Laya.LocalStorage.getItem(t.ISWHITE))
                if (e) {
                    this._isWhite = 1,
                    Laya.LocalStorage.setItem(t.ISWHITE, "true");
                    Laya.LocalStorage.getItem(t.ISWHITE)
                } else
                    this._isWhite = 0,
                    Laya.LocalStorage.setItem(t.ISWHITE, "false")
        }
        static get islinshiWhite() {
            if (o.localVersion != o.configVersion)
                return !1;
            if (this.isWhite)
                return !0;
            if (-1 == this._isLinshiWhiteList) {
                if (a.log(this.without_sceneList),
                this.useSetWhite) {
                    let t = !0
                      , i = !0;
                    if (this.without_sceneList)
                        for (let i = 0; i &lt; this.without_sceneList.length; i++) {
                            let s = this.without_sceneList[i];
                            e.scene == s &amp;&amp; (a.log("---------åœºæ™¯å€¼æ˜¯é»‘åå•1-----------"),
                            t = !1)
                        }
                    if (this.blackIPCityArr)
                        for (let e = 0; e &lt; this.blackIPCityArr.length; e++) {
                            let t = this.blackIPCityArr[e];
                            a.log(t),
                            -1 != n.login_city.indexOf(t) &amp;&amp; (a.log("---------åœºæ™¯å€¼æ˜¯é»‘åå•2-----------"),
                            i = !1)
                        }
                    return t &amp;&amp; i ? (this._isLinshiWhiteList = 1,
                    !!this._isLinshiWhiteList) : (this._isLinshiWhiteList = 0,
                    !!this._isLinshiWhiteList)
                }
                return this._isLinshiWhiteList = 0,
                !!this._isLinshiWhiteList
            }
            return !!this._isLinshiWhiteList
        }
        static get isBlackCity() {
            if (this.blackIPCityArr)
                for (let e = 0; e &lt; this.blackIPCityArr.length; e++) {
                    let t = this.blackIPCityArr[e];
                    if (n.login_city.indexOf(t) &gt;= 0)
                        return !0
                }
            return !1
        }
        static get checkWuchu() {
            if ((Laya.Browser.onQGMiniGame || Laya.Browser.onVVMiniGame) &amp;&amp; this.useSetWhite &amp;&amp; e.version != this.version &amp;&amp; this.blackIPCityArr) {
                let e = !0;
                for (let t = 0; t &lt; this.blackIPCityArr.length; t++) {
                    let i = this.blackIPCityArr[t];
                    if (-1 != n.login_city.indexOf(i)) {
                        e = !1;
                        break
                    }
                }
                if (!e)
                    return !1;
                if (Math.random() &lt;= this.probability)
                    return !0
            }
            return !1
        }
        static get delay_time() {
            for (let e = 0; e &lt; this.blackIPCityArr.length; e++) {
                let t = this.blackIPCityArr[e];
                if (-1 != n.login_city.indexOf(t))
                    return console.log("è¢«å±è”½---------"),
                    3e4
            }
            return this.$delayTime
        }
        static set delay_time(e) {
            e &amp;&amp; e &gt;= 0 &amp;&amp; (this.$delayTime = e)
        }
        static get spaceLevel() {
            return o._spaceLevel
        }
        static set spaceLevel(e) {
            0 == e &amp;&amp; (e = 1),
            o._spaceLevel = e
        }
    }
    var l, r, h, c;
    o.isVideoLock = !0,
    o.video_Switch = !1,
    o.isTest = !1,
    o.useVideo = !1,
    o.switchVer = !1,
    o.start_level = 1,
    o.space_level = 1,
    o.useSetWhite = !1,
    o.without_sceneList = new Array,
    o.blackIPCityArr = new Array,
    o._OpenClick = !1,
    o._OpenVideo = !1,
    o.crazy_click_config_version = 16,
    o.version = 1,
    o.configVersion = 16,
    o.localVersion = 1,
    o.useModelNative = !0,
    o.pos = -1,
    o.ishutui = !1,
    o._ishutui = -1,
    o.everyclick = !1,
    o.isPos = !0,
    o.isFirstMisTouch = !0,
    o._isWhite = -1,
    o.isJump = !1,
    o.RandomClick = !1,
    o._isLinshiWhiteList = -1,
    o.probability = 0,
    o.$delayTime = 3e4,
    o.refreshTime = 3e4,
    o.isNative = !1,
    o.startLevel = 1,
    o._spaceLevel = 1,
    o.delay_button = 0,
    o.breath = !1,
    o.gameTimes = 0,
    o.qukankan = !0,
    function(e) {
        e[e.Img = 0] = "Img",
        e[e.Left = 1] = "Left",
        e[e.Top = 2] = "Top",
        e[e.TopA = 3] = "TopA",
        e[e.TopB = 4] = "TopB"
    }(l || (l = {})),
    function(e) {
        e.Idle = "cavalry_01_idle",
        e.Walk = "cavalry_02_walk"
    }(r || (r = {})),
    function(e) {
        e[e.IdleHappy = .5] = "IdleHappy",
        e[e.Jumping = 2] = "Jumping"
    }(h || (h = {})),
    function(e) {
        e.Idle = "Idle",
        e.IdleBreath = "IdleBreath",
        e.IdleHappy = "IdleHappy",
        e.Dance = "Dance",
        e.VictoryIdle1 = "VictoryIdle1",
        e.shoot = "shoot",
        e.Falling = "Falling",
        e.Land = "Land",
        e.Jumping = "Jumping",
        e.Hit = "Hit",
        e.Hide = "Hide",
        e.MaxAim = "Aim",
        e.MinToMax = "MinToMax",
        e.MinimalAim = "MinimalAim",
        e.CannonIdle = "CannonIdle",
        e.Myaso = "Myaso",
        e.Take = "Take",
        e.Dance1 = "Dance1",
        e.Defence = "mixamo_com",
        e.VictoryIdle = "VictoryIdle"
    }(c || (c = {}));
    class d {
    }
    d.GOLDCHANGE = "goldchange",
    d.SHOWLEFTSIDE = "showleftside",
    d.SKINCHANGE = "skinchange",
    d.USERJUMP = "userjump",
    d.USERCANCEL = "usercancel",
    d.GAMEREADY = "readygame",
    d.GAMESTART = "gamestart",
    d.GAMEOVER = "gameover",
    d.RESETGAME = "resetgame",
    d.GAMELOSE = "gamelose",
    d.GAMEWIN = "gamewin",
    d.GAMENEXT = "gamenext",
    d.HIDENATIVE = "hideNative",
    d.SHOWNATIVE = "showNative",
    d.OPENNATIVE = "openNative",
    d.CLOSENATIVE = "closeNative",
    d.NATIVE_LOADED = "native_loaded",
    d.NATIVE_LOADERROR = "native_loaderror",
    d.STOP_GUIDE = "stop_guide",
    d.SHOW_HAND = "show_hand",
    d.DO_REVIVE = "do_revive",
    d.BUY_ROLE = "buy_role",
    d.HIDE_GUIDE = "hide_guide",
    d.UPDATE_BUTTON = "update_button",
    d.UPDATE_NUM = "update_num",
    d.START_ACTION = "start_action",
    d.DO_ACTION = "do_action",
    d.STOP_ACTION = "stop_action",
    d.CAN_SHOOT = "can_shoot",
    d.ENEMY_SHOOT = "enemy_shoot",
    d.DO_DEATH = "do_death",
    d.CHANGE_BOMB = "change_bomb",
    d.DO_BOMB = "do_bomb",
    d.BOMB_ACTION = "bomb_action",
    d.BALLON_ACTION = "BALLON_ACTION",
    d.BALLON_BOMB = "BALLON_BOMB",
    d.GET_KEY = "get_key",
    d.TEST_CHANGE = "TEST_CHANGE",
    d.TEST_SMALL = "TEST_small";
    class m {
        constructor() {}
        static on(e, t, i, s=null) {
            m._dspt.on(e, t, i, s)
        }
        static once(e, t, i, s) {
            m._dspt.once(e, t, i, s)
        }
        static off(e, t, i, s=!1) {
            m._dspt.off(e, t, i, s)
        }
        static event(e, t) {
            m._dspt.event(e, t)
        }
        static hasListener(e) {
            return m._dspt.hasListener(e)
        }
        static offAll(e) {
            m._dspt.offAll(e)
        }
        static offAllCaller(e) {
            m._dspt.offAllCaller(e)
        }
    }
    m._dspt = new Laya.EventDispatcher;
    class u {
    }
    u.angle = 0,
    u.power = 0,
    u.divNum = 7,
    u.basicPower = 40,
    u.shootNum = 0,
    u.overNum = 0,
    u.roleNum = 0,
    u.enemyNum = 0,
    u.enemyDeathNum = 0,
    u.allEnemyNum = 0,
    u.minEnemyPosX = 99,
    u.minEnemyPosY = 99,
    u.getMoney = 0,
    u.gravity = -9.8,
    u.canMove = !0,
    u.isBombGuide = !1,
    u.isBomb = !1,
    u.isCol = !1,
    u.isFull = !1,
    u.isEnemyShoot = !1,
    u.canChange = !0,
    u.allRole = [],
    u.allEnemy = [],
    u.arrows = [],
    u.desArrs = [],
    u.PlayerDivData = [7, 7, 7, 7, 7, 7, 6, 5, 5, 5, 6, 6, 5, 6, 6, 5, 6, 5, 5, 5.5, 4.5],
    u.canShow = !1,
    u.onMain = !1,
    u.trySkinIndex = [],
    u.signList = [{
        date: 1,
        num: 100
    }, {
        date: 2,
        num: 100
    }, {
        date: 3,
        num: 100
    }, {
        date: 4,
        num: 100
    }, {
        date: 5,
        num: 100
    }, {
        date: 6,
        num: 100
    }, {
        date: 7,
        num: 100
    }];
    class g {
    }
    g.LoadScene = "scenes/mainscenes/LoadScene.scene",
    g.LoadScene1 = "scenes/mainscenes/LoadScene1.scene",
    g.MainScene = "scenes/mainscenes/MainScene.scene",
    g.SelectSkinScene = "scenes/mainscenes/SelectSkinScene.scene",
    g.WinScene = "scenes/mainscenes/WinScene.scene",
    g.FailScene = "scenes/mainscenes/FailScene.scene",
    g.ReviveScene = "scenes/mainscenes/ReviveScene.scene",
    g.PlayScene = "scenes/mainscenes/PlayScene.scene",
    g.ShopScene = "scenes/mainscenes/ShopScene.scene",
    g.TextScene = "scenes/mainscenes/TextScene.scene",
    g.UnlockScene = "scenes/mainscenes/UnlockScene.scene",
    g.LuckBoxScene = "scenes/pubscenes/LuckBoxScene.scene",
    g.TipsScene = "scenes/pubscenes/TipsScene.scene",
    g.SignScene = "scenes/pubscenes/SignScene.scene",
    g.TurntableScene = "scenes/pubscenes/TurntableScene.scene",
    g.SettingScene = "scenes/pubscenes/SettingScene.scene";
    class S {
        static get instance() {
            return this._instance ? this._instance : this._instance = new S
        }
        initScene3D() {}
        openLoadScene(e, t=null) {
            Laya.Scene.open(g.LoadScene, e, t)
        }
        closeLoadScene() {
            Laya.Scene.close(g.LoadScene)
        }
        openMainScene(e, t=null) {
            Laya.Scene.open(g.MainScene, e, t)
        }
        closeMainScene() {
            Laya.Scene.close(g.MainScene)
        }
        openPlayScene(e, t=null) {
            Laya.Scene.open(g.PlayScene, e, t)
        }
        closePlayScene() {
            Laya.Scene.close(g.PlayScene)
        }
        openWinScene(e, t=null) {
            Laya.Scene.open(g.WinScene, e, t)
        }
        closeWinScene() {
            Laya.Scene.close(g.WinScene)
        }
        openFailScene(e, t=null) {
            Laya.Scene.open(g.FailScene, e, t)
        }
        closeFailScene() {
            Laya.Scene.close(g.FailScene)
        }
        openReviveScene(e=null) {
            Laya.Scene.open(g.ReviveScene, !1, e)
        }
        closeReviveScene() {
            Laya.Scene.close(g.ReviveScene)
        }
        openSettingScene(e, t=null) {
            Laya.Scene.open(g.SettingScene, e, t)
        }
        closeSettingScene() {
            Laya.Scene.close(g.SettingScene)
        }
        openSignScene(e, t=null) {
            Laya.Scene.open(g.SignScene, e, t)
        }
        closeSignScene() {
            Laya.Scene.close(g.SignScene)
        }
        openTurnScene(e, t=null) {
            Laya.Scene.open(g.TurntableScene, e, t)
        }
        closeTurnScene() {
            Laya.Scene.close(g.TurntableScene)
        }
        openSelectSkinScene(e, t=null) {
            Laya.Scene.open(g.SelectSkinScene, e, t)
        }
        closeSelectSkinScene() {
            Laya.Scene.close(g.SelectSkinScene)
        }
        openShopScene(e, t=null) {
            Laya.Scene.open(g.ShopScene, e, t)
        }
        closeShopScene() {
            Laya.Scene.close(g.ShopScene)
        }
        openUnlockScene(e, t=null) {
            Laya.Scene.open(g.UnlockScene, e, t)
        }
        closeUnlockScene() {
            Laya.Scene.close(g.UnlockScene)
        }
        openLuckBoxScene(e, t=null) {
            Laya.Scene.open(g.LuckBoxScene, e, t)
        }
        closeLuckBoxScene() {
            Laya.Scene.close(g.LuckBoxScene)
        }
        openTipsScene(e, t=null) {
            Laya.Scene.open(g.TipsScene, e, t)
        }
        closeTipsScene() {
            Laya.Scene.close(g.TipsScene)
        }
    }
    class y {
        constructor() {
            this._dicView = {}
        }
        static get instance() {
            return this._instance ? this._instance : this._instance = new y
        }
    }
    class L {
        constructor() {
            this.isHitPlay = !1,
            this.isShootPlay = !1,
            this.isHitingPlay = !1,
            this.isBoomPlay = !1
        }
        static get instance() {
            return Laya.SoundManager.musicVolume = 1,
            Laya.SoundManager.soundVolume = 1,
            this._instance ? this._instance : this._instance = new L
        }
        getItem(t) {
            return Laya.LocalStorage.getItem(e.APPNAME + "_" + t)
        }
        setItem(t, i) {
            Laya.LocalStorage.setItem(e.APPNAME + "_" + t, i)
        }
        get isSound() {
            return null == this.getItem(t.ISSOUND) || null == this.getItem(t.ISSOUND) || "" == this.getItem(t.ISSOUND) ? (this.setItem(t.ISSOUND, "0"),
            !0) : "0" == this.getItem(t.ISSOUND) || "1" != this.getItem(t.ISSOUND) &amp;&amp; void 0
        }
        set isSound(e) {
            let i = e ? "0" : "1";
            this.setItem(t.ISSOUND, i)
        }
        get isMusic() {
            return null == this.getItem(t.ISMUSIC) || null == this.getItem(t.ISMUSIC) || "" == this.getItem(t.ISMUSIC) ? (this.setItem(t.ISMUSIC, "0"),
            !0) : "0" == this.getItem(t.ISMUSIC) || "1" != this.getItem(t.ISMUSIC) &amp;&amp; void 0
        }
        set isMusic(e) {
            let i = e ? "0" : "1";
            this.setItem(t.ISMUSIC, i),
            e ? e &amp;&amp; this.playMusic() : this.stopMusic()
        }
        stopMusic() {
            Laya.SoundManager.stopMusic()
        }
        playMusic() {
            if (this.isMusic) {
                let e = L._bgMusicUrl;
                Laya.SoundManager.playMusic(e, 0)
            }
        }
        readySound() {
            if (this.isSound) {
                let e = L._ready;
                Laya.SoundManager.playSound(e, 1)
            }
        }
        hitSound() {
            if (this.isSound) {
                if (this.isHitPlay)
                    return;
                this.isHitPlay = !0,
                Laya.timer.once(100, this, ()=&gt;{
                    this.isHitPlay = !1
                }
                );
                let e = L._hit;
                Laya.SoundManager.playSound(e, 1)
            }
        }
        shootSound() {
            if (this.isSound) {
                if (this.isShootPlay)
                    return;
                this.isShootPlay = !0,
                Laya.timer.once(100, this, ()=&gt;{
                    this.isShootPlay = !1
                }
                );
                let e = L._shoot;
                Laya.SoundManager.playSound(e, 1)
            }
        }
        hitingSound() {
            if (this.isSound) {
                if (this.isHitingPlay)
                    return;
                this.isHitingPlay = !0,
                Laya.timer.once(100, this, ()=&gt;{
                    this.isHitingPlay = !1
                }
                );
                let e = L._hiting;
                Laya.SoundManager.playSound(e, 1)
            }
        }
        pullSound() {
            if (this.isSound) {
                let e = L._pull;
                Laya.SoundManager.playSound(e, 1)
            }
        }
        stopPull() {
            if (this.isSound) {
                let e = L._pull;
                Laya.SoundManager.stopSound(e)
            }
        }
        boomtSound() {
            if (this.isSound) {
                if (this.isBoomPlay)
                    return;
                this.isBoomPlay = !0,
                Laya.timer.once(1e3, this, ()=&gt;{
                    this.isBoomPlay = !1
                }
                );
                let e = L._boom;
                Laya.SoundManager.playSound(e, 1)
            }
        }
        win_sound() {
            if (this.isSound) {
                let e = L._win_sound;
                Laya.SoundManager.playSound(e, 1)
            }
        }
        stopWin() {
            if (this.isSound) {
                let e = L._win_sound;
                Laya.SoundManager.stopSound(e)
            }
        }
        LoseVoice() {
            if (this.isSound) {
                let e = L._LoseVoice;
                Laya.SoundManager.playSound(e, 1)
            }
        }
        joinVoice() {
            if (this.isSound) {
                let e = L._join;
                Laya.SoundManager.playSound(e, 1)
            }
        }
        CollectGemVoice() {
            if (this.isSound) {
                let e = L._CollectGem;
                Laya.SoundManager.playSound(e, 1)
            }
        }
    }
    L._baseMusicUrl = "res/mp3/",
    L._bgMusicUrl = L._baseMusicUrl + "bgm.mp3",
    L._win_sound = L._baseMusicUrl + "win_sound.mp3",
    L._ready = L._baseMusicUrl + "ready.mp3",
    L._hit = L._baseMusicUrl + "hit.mp3",
    L._shoot = L._baseMusicUrl + "shoot.mp3",
    L._pull = L._baseMusicUrl + "pull.mp3",
    L._boom = L._baseMusicUrl + "boom.mp3",
    L._LoseVoice = L._baseMusicUrl + "LoseVoice.mp3",
    L._hiting = L._baseMusicUrl + "hiting.mp3",
    L._join = L._baseMusicUrl + "join.mp3",
    L._CollectGem = L._baseMusicUrl + "Collect_Gem_2.mp3";
    class w {
        constructor() {
            this._browser = null,
            this.appId = "tt8008f6b51f36ee7602",
            this.videoAdUnitId = "618h2d2ab25a1f4yjf",
            this.InterstitialAdUnitId = "32hll28k5mh72d39e5",
            this.bannerAdUnitId = "248b1la984lj53dks1",
            this.videoAdUnitIdTest = "11",
            this.InterstitialAdUnitIdTest = "11",
            this.bannerAdUnitIdTest = "11",
            this.GameRecorderManager = null,
            this.videoPath = "",
            this.screenWidth = 0,
            this.screenHeight = 0,
            this.clipIndexList = [],
            this.myBanner = null,
            this.isHide = !1
        }
        static get instance() {
            return this._instance ? this._instance : this._instance = new w
        }
        initData() {
            Laya.Browser.onTTMiniGame &amp;&amp; (this._browser = Laya.Browser.window.tt,
            this.getGameRecorderManager())
        }
        getGameRecorderManager() {
            if (this.videoPath = "",
            Laya.Browser.onTTMiniGame) {
                this.GameRecorderManager = this._browser.getGameRecorderManager(),
                this.GameRecorderManager.onStart(e=&gt;{
                    a.log("å¼€å§‹å½•å±")
                }
                );
                let e = this;
                this.GameRecorderManager.onStop(t=&gt;{
                    e.videoPath = t.videoPath,
                    a.log(t.videoPath),
                    a.log("ç»“æŸå½•å±")
                }
                )
            }
        }
        startRecorder() {
            if (Laya.Browser.onTTMiniGame) {
                let e = this.GameRecorderManager.getMark();
                this.screenWidth,
                e.markWidth,
                this.screenHeight,
                e.markHeight;
                a.log(this.GameRecorderManager),
                this.GameRecorderManager.start({
                    duration: 300,
                    isMarkOpen: !1
                })
            }
        }
        stopRecorder() {
            Laya.Browser.onTTMiniGame &amp;&amp; this.GameRecorderManager.stop()
        }
        recordClip() {
            if (Laya.Browser.onTTMiniGame) {
                let e = this;
                this.GameRecorderManager.recordClip({
                    timeRange: [2, 0],
                    success(t) {
                        a.log(t.index),
                        e.clipIndexList.push(t.index)
                    }
                })
            }
        }
        check() {}
    }
    class _ {
        constructor() {
            this.nativeAd = null,
            this._browser = null,
            this.boxBannerAdUnitId = "8a3355ed396e413f9f899ac43a1544dd",
            this.customTopAdUnitId = "9d7da254d4e3420097109f7b03eaab3d",
            this.customLeftAdUnitId = "bbf0ef547d2c444594f85f0ae18a660a",
            this.videoAdUnitId = "58281b940b3946299d13e2dc6fd027a7",
            this.customImgAdUnitId = "8ff5826626cd4fc9bf9e734395f901b9",
            this.startAdUnitId = "9c0b35c4147644b89f10c318c2b48bd9",
            this.bannerAdUnitId = "962c53710ae5459ab8def754766dec3a",
            this.nativeAdUnitId = "e88c294c247c40289780c526a1dcc75c",
            this.portalAdUnitId = "d9765d8989794884b0ead17ae78cc191",
            this.noHutui = !1,
            this.$whitechangeBannerTime = 3e4,
            this._boxPortalAd = null,
            this._boxBannerAd = null
        }
        static get instance() {
            return this._instance ? this._instance : this._instance = new _
        }
        initData() {}
        get refreshTime() {
            return this.$whitechangeBannerTime
        }
        set refreshTime(e) {
            e &amp;&amp; e &gt; 2e3 &amp;&amp; (this.$whitechangeBannerTime = e)
        }
    }
    class f {
        constructor() {
            this._browser = null,
            this.bannerIDList = ["adunit-4e7a7e8c92ee8192", "adunit-fde836f595bafadb", "adunit-1452de1bc74531de", "adunit-95bf788359f9ec3f", "adunit-d9eb810105a81f9b", "adunit-a98e080704ee2e9d", "adunit-240c1524603a51bc", "adunit-c4025806876553ed"],
            this.videoID = "adunit-e189e8268a256a76",
            this.InterstitialID = "adunit-949da965a9147075",
            this.$whitechangeBannerTime = 4200,
            this.blackchangeBannerTime = 3e4,
            this.bannerList = {},
            this.bannerID = ""
        }
        static get instance() {
            return this._instance ? this._instance : this._instance = new f
        }
        get refreshTime() {
            return this.$whitechangeBannerTime
        }
        set refreshTime(e) {
            e &amp;&amp; e &gt; 2e3 &amp;&amp; (this.$whitechangeBannerTime = e)
        }
        init() {}
        get hasBanner() {
            let e = 0;
            for (let t in this.bannerList)
                e++;
            return 0 != e
        }
        getBannerList() {
            return this.bannerList
        }
        changeBannerByTime() {
            if (!Laya.Browser.onMiniGame)
                return;
            let e = this;
            o.islinshiWhite ? Laya.timer.once(e.refreshTime, e, e.showBanner, [!0]) : Laya.timer.once(e.blackchangeBannerTime, e, e.showBanner, [!0])
        }
    }
    class A {
        constructor(e, t, i=1, s, n) {
            this.$runTime = 0,
            this.$runCount = 0,
            this.$call = e,
            this.$thisObj = t,
            n || this.start(),
            Laya.timer[s ? "loop" : "frameLoop"](i, this, this.update)
        }
        update() {
            if (this.$running)
                this.$runCount++,
                this.$call.call(this.$thisObj);
            else {
                let e = this.$awaitTime;
                e &amp;&amp; e &lt;= Date.now() &amp;&amp; this.start()
            }
        }
        start() {
            this.$running || (this.$lastTime = Date.now(),
            this.$running = !0,
            this.$awaitTime = null)
        }
        stop() {
            if (this.$running) {
                let e = Date.now();
                this.$runTime += e - this.$lastTime,
                this.$lastTime = e,
                this.$running = !1,
                this.$awaitTime = null
            }
        }
        await(e) {
            e &gt; 0 ? (this.stop(),
            this.$awaitTime = Date.now() + e) : this.start()
        }
        get running() {
            return this.$running
        }
        get runTime() {
            return this.$runTime + (this.running ? Date.now() - this.$lastTime : 0)
        }
        get runCount() {
            return this.$runCount
        }
        reset() {
            this.$runTime = this.$runCount = 0,
            this.$lastTime = Date.now()
        }
        clear() {
            Laya.timer.clear(this, this.update),
            this.$call = this.$thisObj = null
        }
    }
    var b = "LTween"
      , B = "$" + b
      , I = function(e, t) {
        var i = e.indexOf(t);
        i &gt; -1 &amp;&amp; e.splice(i, 1)
    };
    class x {
        $init(e, t) {
            (e[B] || (e[B] = [])).push(this),
            this.$target = e,
            this.$frame = t.frame,
            this.$loop = t.loop,
            this.$once = !1 !== t.once,
            this.$frameCall = t.frameCall,
            this.$frameObj = t.frameObj,
            this.$curTime = 0,
            this.$needCopy = !0,
            this.$steps = [],
            this.$cSteps = [],
            this.$timer = new A(this.$update,this,1,!1,!0)
        }
        get $runTime() {
            var e = this.$timer;
            return this.$frame ? e.runCount : e.runTime
        }
        $update() {
            var e = this.$steps
              , t = this.$cSteps;
            this.$needCopy &amp;&amp; (this.$needCopy = !1,
            t.push.apply(t, e));
            var i = this.$runTime
              , s = 0;
            for (let t = 0, n = e.length; t &lt; n; t++) {
                let n = e[t];
                if (n.startTime &gt; i)
                    break;
                this.$runStep(n),
                n.endTime &lt;= i &amp;&amp; s++
            }
            s &gt; 0 &amp;&amp; e.splice(0, s);
            var n = this.$frameCall;
            n &amp;&amp; n.call(this.$frameObj),
            (e = this.$steps) &amp;&amp; 0 == e.length &amp;&amp; (this.$loop ? (this.$timer.reset(),
            this.$steps = t.concat()) : this.$once ? this.clear() : this.$pause())
        }
        $pause() {
            var e = this.$timer;
            this.$needCopy = !0,
            this.$curTime = 0,
            this.$steps = [],
            e.stop(),
            e.reset()
        }
        $addStep(e, t, i) {
            var s = this.$curTime
              , n = this.$curTime = s + t;
            this.$steps.push({
                type: e,
                startTime: s,
                endTime: n,
                param: i
            }),
            this.$timer.start()
        }
        $getIncrement(e, t) {
            var i, s = {}, n = Object.keys(t);
            for (let a in n) {
                let o = n[a];
                if (e &amp;&amp; e.children &amp;&amp; e.parent) {
                    let n = e[o];
                    ((i = n) || null != i &amp;&amp; null != i) &amp;&amp; (s[o] = t[o] - n)
                }
            }
            return s
        }
        $runStep(e) {
            switch (e.type) {
            case 0:
                this.$to(e);
                break;
            case 1:
                this.$set(e.param);
                break;
            case 2:
                break;
            case 3:
                this.$call(e.param);
                break;
            case 4:
                this.$form(e)
            }
        }
        $to(e) {
            var t = e.startTime
              , i = Math.min((this.$runTime - t) / (e.endTime - t), 1)
              , s = e.param
              , n = s[0];
            n &amp;&amp; (i = n(i));
            var a = this.$target
              , o = s[1]
              , l = s[2] || (s[2] = this.$getIncrement(a, o));
            for (let e in l)
                a[e] = o[e] - l[e] * (1 - i)
        }
        $set(e) {
            var t = this.$target;
            for (let i in e)
                t[i] = e[i]
        }
        $call(e) {
            e[0].apply(e[1], e[2])
        }
        $form(e) {
            var t = e.param
              , i = this.$target
              , s = e.startTime
              , n = Math.min((this.$runTime - s) / (e.endTime - s), 1);
            for (let e in t)
                i[e] = t[e](n)
        }
        to(e, t, i) {
            return isNaN(t) || t &lt;= 0 ? this.set(e) : this.$addStep(0, t, [i, e]),
            this
        }
        set(e) {
            return this.$addStep(1, 0, e),
            this
        }
        wait(e) {
            return e &gt; 0 &amp;&amp; this.$addStep(2, e),
            this
        }
        call(e, t, i) {
            return e &amp;&amp; this.$addStep(3, 0, [e, t, i]),
            this
        }
        form(e, t) {
            if (isNaN(t) || t &lt;= 0) {
                let t = {};
                for (let i in e)
                    t[i] = e[i](1);
                this.set(t)
            } else
                this.$addStep(4, t, e);
            return this
        }
        repeat(e, t) {
            if (e &gt; 0 &amp;&amp; this.$timer) {
                let i = this.$cSteps.concat().concat(this.$steps)
                  , s = i.length;
                if (s &gt; 0) {
                    t &gt; 0 &amp;&amp; !(t &gt; s) || (t = s);
                    let n = s - t;
                    for (let s = 0; s &lt; e; s++)
                        for (let e = 0; e &lt; t; e++) {
                            let t = i[n + e];
                            this.$addStep(t.type, t.endTime - t.startTime, t.param)
                        }
                }
            }
            return this
        }
        stop() {
            var e = this.$timer;
            e &amp;&amp; e.stop()
        }
        resume() {
            var e = this.$timer;
            e &amp;&amp; e.start()
        }
        clear() {
            if (this.$timer) {
                let e = this.$target
                  , t = e[B];
                t instanceof Array &amp;&amp; (I(t, this),
                0 == t.length &amp;&amp; delete e[B]),
                this.$timer.clear(),
                this.$timer = this.$steps = this.$cSteps = this.$target = this.$frameCall = this.$frameObj = null,
                Laya.Pool.recover(b, this)
            }
        }
        static get(e, t) {
            var i = Laya.Pool.getItemByClass(b, x);
            return i.$init(e, t || {}),
            i
        }
        static once(e, t) {
            return x.clear(e),
            x.get(e, t)
        }
        static clear(e) {
            if (e) {
                let t = e[B];
                if (t instanceof Array)
                    for (let e = 0, i = t.length; e &lt; i; e++) {
                        let i = t[e];
                        i instanceof x &amp;&amp; i.clear()
                    }
                delete e[B]
            }
        }
        static clearAll(e) {
            x.clear(e);
            for (let t = 0, i = e.numChildren; t &lt; i; t++)
                x.clearAll(e.getChildAt(t))
        }
        static turnEase(e) {
            return function(t) {
                return e(t, 0, 1, 1)
            }
        }
    }
    var T = 0
      , M = 0
      , C = {}
      , E = {}
      , N = function(e, t) {
        var i = e[t];
        i &amp;&amp; (delete e[t],
        Laya.timer.clear(null, i))
    };
    class P {
        constructor() {}
        static formatTen(e) {
            return (e &gt; 9 ? "" : "0") + e
        }
        static formatHour(e, t=":") {
            var i = P.formatTen
              , s = (e / 60 | 0) % 60
              , n = e % 60;
            return i(e / 3600 | 0) + t + i(s) + t + i(n)
        }
        static getDay(e) {
            return (e / 36e5 + 8) / 24 | 0
        }
        static isSameDay(e, t) {
            var i = P.getDay;
            return i(e) == i(t)
        }
        static setTimeout(e, t, i, ...s) {
            var n = ++T
              , a = C[n] = function() {
                e.apply(t, s),
                delete C[n]
            }
            ;
            return Laya.timer.once(i, null, a),
            n
        }
        static clearTimeout(e) {
            N(C, e)
        }
        static setInterval(e, t, i, ...s) {
            var n = ++M
              , a = E[n] = function() {
                e.apply(t, s)
            }
            ;
            return Laya.timer.loop(i, null, a),
            n
        }
        static clearInterval(e) {
            N(E, e)
        }
    }
    var O = Laya.Vector3;
    class D {
        constructor() {}
        static cloneArray(e) {
            let t = [];
            for (let i = 0; i &lt; e.length; i++)
                t.push(e[i]);
            return t
        }
        static DistanceSquared(e, t, i, s) {
            let n = e - i
              , a = t - s;
            return n * n + a * a
        }
        static MapDistanceSquared(e, t) {
            let i = e.x - t.x
              , s = e.z - t.z;
            return i * i + s * s
        }
        static GetAngle(e, t) {
            if (0 == t)
                return e &gt; 0 ? 0 : 180;
            let i = 180 * Math.atan(e / t) / Math.PI;
            return t &lt; 0 &amp;&amp; (i = e &lt; 0 ? 180 + Math.abs(i) : 180 - Math.abs(i)),
            i = 90 - i
        }
        static parseInt(e) {
            if (null == e || "undefined" == e)
                return 0;
            let t = parseFloat(e);
            return t ? Math.floor(t) : 0
        }
        static isEmpty(e) {
            return void 0 === e || null == e || "" == e
        }
        static isEqual(e, t) {
            let i = e - t;
            return D.nearZero(i)
        }
        static nearZero(e) {
            return e &gt;= -.001 &amp;&amp; e &lt;= .001
        }
        static equalVec(e, t) {
            return this.isEqual(e.x, t.x) &amp;&amp; this.isEqual(e.y, t.y) &amp;&amp; this.isEqual(e.z, t.z)
        }
        static vec3NearZero(e) {
            return this.nearZero(e.x) &amp;&amp; this.nearZero(e.y) &amp;&amp; this.nearZero(e.z)
        }
        static SmoothDamp(e, t, i, s, n=-1, a, o) {
            -1 == n &amp;&amp; (n = Number.MAX_VALUE);
            let l = 2 / (s = Math.max(1e-4, s))
              , r = l * a
              , h = 1 / (1 + r + .48 * r * r + .235 * r * r * r);
            O.subtract(e, t, D._changeVec),
            t.cloneTo(D._originalTo);
            let c = n * s;
            D.ClampMagnitude(D._changeVec, c),
            O.subtract(e, D._changeVec, t),
            O.scale(D._changeVec, l, D._tmpVec),
            O.add(i, D._tmpVec, D._tmpVec),
            O.scale(D._tmpVec, a, D._tmpVec),
            O.scale(D._tmpVec, l, D._tmpVec2),
            O.subtract(i, D._tmpVec2, D._tmpVec2),
            O.scale(D._tmpVec2, h, i),
            O.add(D._changeVec, D._tmpVec, D._tmpVec),
            O.scale(D._tmpVec, h, D._tmpVec),
            O.add(t, D._tmpVec, o),
            O.subtract(D._originalTo, e, D._tmpVec),
            O.subtract(o, D._originalTo, D._tmpVec2),
            O.dot(D._tmpVec, D._tmpVec2) &gt; 0 &amp;&amp; (D._originalTo.cloneTo(o),
            O.subtract(o, D._originalTo, D._tmpVec),
            O.scale(D._tmpVec, 1 / a, i))
        }
        static ClampMagnitude(e, t) {
            O.scalarLengthSquared(e) &gt; t * t &amp;&amp; (O.normalize(e, e),
            O.scale(e, t, e))
        }
        static Range(e, t) {
            return e + Math.random() * (t - e)
        }
        static IntRange(e, t) {
            return Math.round(D.Range(e, t))
        }
        static DegToRad(e) {
            return e * Math.PI / 180
        }
        static RadToDeg(e) {
            return 180 * e / Math.PI
        }
        static getGravity(e, t) {
            return 2 * e / (t * t)
        }
        static RotatePos(e, t, i, s) {
            let n = D.DegToRad(i - 180)
              , a = Math.cos(n)
              , o = Math.sin(n)
              , l = (e.x - t.x) * a + (e.z - t.z) * o + t.x
              , r = -(e.x - t.x) * o + (e.z - t.z) * a + t.z;
            s.setValue(l, 0, r)
        }
        static formatTimestamp(e) {
            let t, i, s, n, a, o, l;
            return i = Math.floor(e / 3600),
            s = Math.floor(e % 3600 / 60),
            n = Math.floor(e % 3600 % 60),
            t = (a = i &gt;= 10 ? i.toString() : "0" + i) + ":" + (o = s &gt;= 10 ? s.toString() : "0" + s) + ":" + (l = n &gt;= 10 ? n.toString() : "0" + n)
        }
        static formatTime(e) {
            let t, i, s, n;
            return t = (i = Math.floor(e / 60)) + ":" + (n = (s = Math.floor(e % 60)) &gt;= 10 ? s.toString() : "0" + s)
        }
        static formatNum(e) {
            let t = e.toString();
            return 1 == t.length ? t = "00" + e : 2 == t.length &amp;&amp; (t = "0" + e),
            t
        }
        static log(...e) {
            let t = D.formatDate(new Date, "[hh:mm:ss.S]");
            e.forEach(e=&gt;{
                t += " " + JSON.stringify(e)
            }
            ),
            console.log(t)
        }
        static formatDate(e, t) {
            let i = {
                "Y+": e.getFullYear(),
                "M+": e.getMonth() + 1,
                "d+": e.getDate(),
                "h+": e.getHours(),
                "m+": e.getMinutes(),
                "s+": e.getSeconds(),
                S: e.getMilliseconds()
            };
            /(y+)/.test(t) &amp;&amp; (t = t.replace(RegExp.$1, (e.getFullYear() + "").substr(4 - RegExp.$1.length)));
            for (let e in i)
                new RegExp("(" + e + ")").test(t) &amp;&amp; (t = t.replace(RegExp.$1, 1 == RegExp.$1.length ? i[e] : ("00" + i[e]).substr(("" + i[e]).length)));
            return t
        }
        static addRedPoint(e, t, i=8, s=1) {
            let n = e.getChildByName("redPoint");
            n ? n.visible = t : t &amp;&amp; ((n = new Laya.Image("game/game_redPoint.png")).name = "redPoint",
            e.addChild(n),
            n.top = i,
            n.right = s)
        }
        static shuffle(e) {
            for (var t = e.length, i = 0; i &lt; t - 1; i++) {
                var s = Math.floor(Math.random() * (t - i))
                  , n = e[s];
                e[s] = e[t - i - 1],
                e[t - i - 1] = n
            }
            return e
        }
        static getTodayDate() {
            let e = new Date;
            return e.getFullYear() + "_" + (e.getMonth() + 1) + "_" + e.getDate()
        }
        static mathSinCos(e, t) {
            return Math[e](t * Math.PI / 180)
        }
        static sin(e) {
            return D.mathSinCos("sin", e)
        }
        static cos(e) {
            return e % 180 == 90 ? 0 : D.mathSinCos("cos", e)
        }
        static initCDNFiles(e, t) {
            var i = [Laya.MiniAdpter, Laya.VVMiniAdapter]
              , s = !1;
            for (let e in i)
                i[e] &amp;&amp; (s = !0);
            if (s) {
                let i, s, n = Laya.URL, a = n.customFormat;
                n.customFormat = function(n) {
                    if (n = a(n),
                    (s = n.indexOf("/")) &gt; 0) {
                        i = n.substr(0, s);
                        for (let s in t)
                            if (t[s] === i) {
                                n = e + n;
                                break
                            }
                    }
                    return n
                }
            }
        }
        static memset(e, t) {
            return Array.apply(null, Array(e)).map(function(e, i) {
                return t
            })
        }
        static memset2(e, t) {
            return Array.apply(null, Array(e)).map(function(e, i) {
                return t(i)
            })
        }
        static randomInArray(e, t) {
            var i = e.length
              , s = i;
            if (i &gt; 1 &amp;&amp; null != t) {
                let n = e.indexOf(t);
                n &gt; -1 &amp;&amp; (i--,
                s = n)
            }
            var n = Math.random() * i | 0;
            return n &gt;= s &amp;&amp; n++,
            e[n]
        }
        static randomSort(e) {
            return e.sort(function(e, t) {
                return Math.random() - .5
            })
        }
        static rmSplice(e) {
            var t = e.length
              , i = Math.random() * t | 0;
            return e.splice(i, 1)[0]
        }
        static removeItem(e, t) {
            if (e)
                for (let i = 0, s = e.length; i &lt; s; i++)
                    t(e[i]) &amp;&amp; (e.splice(i, 1),
                    i--,
                    s--)
        }
        static formatStringReg(e, t, i) {
            for (let s in i) {
                i[s];
                if (!e.test(t))
                    break;
                t = t.replace(e, i[s])
            }
            return t
        }
        static formatString(e, ...t) {
            return e = e.replace(/%%/g, "%"),
            D.formatStringReg(/%d|%s/i, e, t)
        }
        static drawRoundRect(e, t, i, s) {
            var n = [["moveTo", s, 0], ["lineTo", t - s, 0], ["arcTo", t, 0, t, s, s], ["lineTo", t, i - s], ["arcTo", t, i, t - s, i, s], ["lineTo", s, i], ["arcTo", 0, i, 0, i - s, s], ["lineTo", 0, s], ["arcTo", 0, 0, s, 0, s]];
            e.drawPath(0, 0, n, {
                fillStyle: "#0"
            })
        }
        static uiEnableCall(e, t, i, ...s) {
            if (e._getBit(Laya.Const.AWAKED))
                t.apply(i, s);
            else {
                let n = e.onEnable;
                e.onEnable = function() {
                    n.call(e),
                    e.onEnable = n,
                    t.apply(i, s)
                }
            }
        }
        static getRes(e, t) {
            return new Promise(function(i) {
                let s = Laya.loader
                  , n = s.getRes(e);
                n ? i(n) : s.load(e, Laya.Handler.create(null, i), null, t)
            }
            )
        }
        static multipleClick(e, t, i, s, n) {
            var a, o, l, r = 0;
            e.on(Laya.Event.CLICK, this, function() {
                (o = Date.now()) - a &gt; i &amp;&amp; (r = 0),
                a = o,
                ++r &gt;= t &amp;&amp; (r = 0,
                s &amp;&amp; s.call(n)),
                P.clearTimeout(l),
                l = P.setTimeout(function() {
                    r = 0
                }, null, i)
            })
        }
        static copy(e) {
            var t;
            if ("object" == typeof e) {
                t = e instanceof Array ? [] : Object.create(null);
                for (let i in e)
                    t[i] = D.copy(e[i])
            } else
                t = e;
            return t
        }
        static copyAttrs(e, t, i) {
            for (let s = 0, n = e.length; s &lt; n; s++) {
                let n = e[s];
                t[n] = i[n]
            }
        }
        static globalToLocal(e, t, i) {
            var s = Laya.Point.TEMP;
            return s.setTo(t, i),
            e.globalToLocal(s),
            s
        }
        static async getGameLevelJson(e) {
            return await this.parseGameJson(e)
        }
        static async parseGameJson(e) {
            return new Promise(async t=&gt;{
                Laya.loader.load(e, Laya.Handler.create(this, e=&gt;{
                    let i = D.copy(e);
                    t(i)
                }
                ))
            }
            )
        }
    }
    D._originalTo = new O,
    D._changeVec = new O,
    D._tmpVec = new O,
    D._tmpVec2 = new O;
    class k {
        static getCell(e, t) {
            return e.getCell(t)
        }
        static globalToLocal(e, t, i) {
            var s = Laya.Point.TEMP;
            return s.setTo(t, i),
            e.globalToLocal(s),
            s
        }
        static centerChild(e, t, i=0) {
            let s = e.numChildren;
            if (s &gt; 0) {
                let n, a = 0, o = 0, l = [];
                for (void 0 === t &amp;&amp; (t = s),
                n = 0; n &lt; s; n++) {
                    let i = e.getChildAt(n);
                    if (i.visible &amp;&amp; (a += i.width,
                    l.push(i),
                    ++o &gt;= t))
                        break
                }
                for (s = l.length,
                a = (e.width - a - (s - 1) * i) / 2,
                n = 0; n &lt; s; n++)
                    l[n].x = a,
                    a += l[n].width + i
            }
        }
        static initVSBtn(e, t, i, s) {
            var n = !1;
            if (t &amp;&amp; (n = !1) &amp;&amp; !(i &lt; 0)) {
                let t = i &gt; -1 &amp;&amp; e.getChildAt(i) || e
                  , n = D.formatString(s || "main/icon_%s.png", "share");
                t instanceof Laya.Image ? t.skin = n : D.getRes(n).then(function(e) {
                    t.texture = e
                }),
                t.visible = !0
            }
            if (!n) {
                let t = e.getChildAt(i);
                t &amp;&amp; (t.visible = !1,
                k.centerChild(e, 1))
            }
            return 0
        }
        static addClick(e, t, i, s, n, a=300) {
            var o, l = s ? "once" : "on", r = 0, h = [];
            e.offAll(),
            void 0 !== n &amp;&amp; (h.push(n),
            o = 1),
            e[l](Laya.Event.CLICK, i, function(e) {
                var s = Date.now();
                e.stopPropagation(),
                s - r &lt; a || (h[o] = e,
                t.apply(i, h),
                r = s)
            });
            var c = e.scaleX
              , d = e.scaleY
              , m = !1
              , u = c + .05 * (c &gt; 0 ? 1 : -1)
              , g = d + .05 * (d &gt; 0 ? 1 : -1)
              , S = x.once
              , y = function(t) {
                m &amp;&amp; (m = !1,
                t.stopPropagation(),
                S(e).to({
                    scaleX: c,
                    scaleY: d
                }, 200))
            };
            e.on(Laya.Event.MOUSE_DOWN, i, function(t) {
                m = !0,
                t.stopPropagation(),
                S(e).to({
                    scaleX: u,
                    scaleY: g
                }, 200)
            }),
            e.on(Laya.Event.MOUSE_UP, i, y),
            e.on(Laya.Event.MOUSE_OUT, i, y)
        }
        static drawTexture(e, t) {
            let i = e.renderTarget
              , s = new Laya.Texture(i,Laya.Texture.DEF_UV);
            t.graphics.drawTexture(s)
        }
        static getRightTop(e) {
            return new Laya.Point(e.width,0)
        }
        static addClick2(e, t, i) {
            e.on(Laya.Event.CLICK, i, t)
        }
    }
    class V extends Laya.View {
        constructor() {
            super(),
            this.$events = {},
            this.$calls = [],
            this.$btnMisTouch = null,
            this._misTouchBtnPos = new Laya.Vector2
        }
        static init() {
            Laya.UIBaseView = V
        }
        onEnable() {}
        onClosed() {
            super.onClosed();
            var e = m
              , t = this.$events;
            for (let i in t)
                e.off(i, this, t[i]);
            this.$events = null;
            var i = this.$calls
              , s = this.closeParam;
            for (let e in i) {
                let t = i[e];
                t[0].call(t[1], s)
            }
            this.timer.clearAll(this),
            this.offAll(),
            this.$calls = this.closeParam = null
        }
        onDestroy() {}
        regEvent(e, t) {
            this.$events[e] = t,
            m.on(e, this, t)
        }
        regClick(e, t, i, s, n) {
            k.addClick(e, t, this, i, s, n)
        }
        onShow() {}
        onHide() {}
        setCloseCall(e, t) {
            this.$calls.push([e, t])
        }
        clearCloseCall() {
            this.$calls &amp;&amp; (this.$calls.length = 0)
        }
        eventCount() {}
    }
    var G = Laya.Scene;
    V.init();
    var R, U = Laya.ClassUtils.regClass;
    !function(e) {
        !function(e) {
            !function(e) {
                class t extends Laya.UIBaseView {
                    constructor() {
                        super()
                    }
                    createChildren() {
                        super.createChildren(),
                        this.loadScene("scenes/mainscenes/FailScene")
                    }
                }
                e.FailSceneUI = t,
                U("ui.scenes.mainscenes.FailSceneUI", t);
                class i extends Laya.UIBaseView {
                    constructor() {
                        super()
                    }
                    createChildren() {
                        super.createChildren(),
                        this.loadScene("scenes/mainscenes/LoadScene")
                    }
                }
                e.LoadSceneUI = i,
                U("ui.scenes.mainscenes.LoadSceneUI", i);
                class s extends Laya.UIBaseView {
                    constructor() {
                        super()
                    }
                    createChildren() {
                        super.createChildren(),
                        this.loadScene("scenes/mainscenes/MainScene")
                    }
                }
                e.MainSceneUI = s,
                U("ui.scenes.mainscenes.MainSceneUI", s);
                class n extends Laya.UIBaseView {
                    constructor() {
                        super()
                    }
                    createChildren() {
                        super.createChildren(),
                        this.loadScene("scenes/mainscenes/PlayScene")
                    }
                }
                e.PlaySceneUI = n,
                U("ui.scenes.mainscenes.PlaySceneUI", n);
                class a extends G {
                    constructor() {
                        super()
                    }
                    createChildren() {
                        super.createChildren(),
                        this.loadScene("scenes/mainscenes/SelectSkinScene")
                    }
                }
                e.SelectSkinSceneUI = a,
                U("ui.scenes.mainscenes.SelectSkinSceneUI", a);
                class o extends Laya.UIBaseView {
                    constructor() {
                        super()
                    }
                    createChildren() {
                        super.createChildren(),
                        this.loadScene("scenes/mainscenes/WinScene")
                    }
                }
                e.WinSceneUI = o,
                U("ui.scenes.mainscenes.WinSceneUI", o)
            }(e.mainscenes || (e.mainscenes = {}))
        }(e.scenes || (e.scenes = {}))
    }(R || (R = {})),
    function(e) {
        !function(e) {
            !function(e) {
                class i extends Laya.UIBaseView {
                    constructor() {
                        super()
                    }
                    createChildren() {
                        super.createChildren(),
                        this.loadScene("scenes/pubscenes/SettingScene")
                    }
                }
                e.SettingSceneUI = i,
                U("ui.scenes.pubscenes.SettingSceneUI", i);
                class s extends G {
                    constructor() {
                        super()
                    }
                    createChildren() {
                        super.createChildren(),
                        this.loadScene("scenes/pubscenes/SignScene")
                    }
                }
                e.SignSceneUI = s,
                U("ui.scenes.pubscenes.SignSceneUI", s);
                class a extends Laya.UIBaseView {
                    constructor() {
                        super()
                    }
                    createChildren() {
                        super.createChildren(),
                        this.loadScene("scenes/pubscenes/TipsScene")
                    }
                }
                e.TipsSceneUI = a,
                U("ui.scenes.pubscenes.TipsSceneUI", a);
                class o extends G {
                    constructor() {
                        super()
                    }
                    createChildren() {
                        super.createChildren(),
                        this.loadScene("scenes/pubscenes/TurntableScene")
                    }
                }
                e.TurntableSceneUI = o,
                U("ui.scenes.pubscenes.TurntableSceneUI", o)
            }(e.pubscenes || (e.pubscenes = {}))
        }(e.scenes || (e.scenes = {}))
    }(R || (R = {}));
    class H extends R.scenes.mainscenes.FailSceneUI {
        constructor() {
            super(),
            this.ovIsClickAd = !1,
            this.obtainGold = 0
        }
        onEnable() {
            u.canShow = !1
        }
        onOpened(e) {
            this.initEvent(),
            this.obtainGold = Math.round(u.getMoney * u.enemyDeathNum / u.allEnemyNum),
            this._moneyNum.value = "" + this.obtainGold,
            s.gold += this.obtainGold,
            m.event(d.GOLDCHANGE)
        }
        initEvent() {
            this.regClick(this._again, this.doAgain),
            this.regClick(this._skip, this.skipClick)
        }
        doAgain() {
            this.judgeMisTouch()
        }
        skipClick() {
            var that = this;
            my.r(() =&gt;{
                //if (res) {
                    this.watchVideo(!0)
                //} else {
                 //   this.watchVideo(0)
                //}
            }
            )
        }
        retryGame() {
            m.event(d.RESETGAME),
            S.instance.closeFailScene()
        }
        skipGame() {
            m.event(d.RESETGAME),
            s.levelIndex++,
            S.instance.closeFailScene()
        }
        judgeMisTouch() {
            this.retryGame()
        }
        closeAdvert() {
            S.instance.openMainScene(!1, !0)
        }
        watchVideo(e) {
            e &amp;&amp; this.skipGame()
        }
        onClosed() {
            this.closeAdvert()
        }
    }
    class W {
        constructor() {
            this.sprite3D_res = {},
            this.mat_res = {},
            this.now_num = 0,
            this.total_num = 0,
            this.on_load_finished = null,
            this.on_progress = null
        }
        static get instance() {
            return this._instance ? this._instance : this._instance = new W
        }
        _one_res_load_finished() {
            this.now_num++,
            this.on_progress &amp;&amp; this.on_progress(this.now_num / this.total_num),
            this.now_num &gt;= this.total_num &amp;&amp; this.on_load_finished &amp;&amp; this.on_load_finished()
        }
        load_sprite(e) {
            Laya.loader.create(e, Laya.Handler.create(this, t=&gt;{
                this.sprite3D_res[e] = t,
                this._one_res_load_finished()
            }
            ))
        }
        release_sprite(e) {
            this.sprite3D_res[e] &amp;&amp; (this.sprite3D_res[e] = null)
        }
        load_mat(e) {
            Laya.loader.create(e, Laya.Handler.create(this, t=&gt;{
                this.mat_res[e] = t,
                this._one_res_load_finished()
            }
            ))
        }
        release_mat(e) {
            this.mat_res[e] &amp;&amp; (this.mat_res[e] = null)
        }
        preloadResPkg(t, i, s) {
            var n = 0
              , a = "";
            for (var o in this.on_progress = i,
            this.on_load_finished = s,
            this.total_num = 0,
            t)
                this.total_num += t[o].length;
            if (this.now_num = 0,
            t.mat)
                for (n = 0; n &lt; t.mat.length; n++)
                    a = t.mat[n],
                    this.load_mat(e.ZIP_BASE_URL + a);
            if (t.sprite3D)
                for (n = 0; n &lt; t.sprite3D.length; n++)
                    a = t.sprite3D[n],
                    this.load_sprite(e.ZIP_BASE_URL + a)
        }
        releaseResPkg(t) {
            var i = 0
              , s = null;
            if (t.sprite3D)
                for (i = 0; i &lt; t.sprite3D.length; i++)
                    s = t.sprite3D[i],
                    this.release_sprite(e.ZIP_BASE_URL + s);
            if (t.mat)
                for (i = 0; i &lt; t.mat.length; i++)
                    s = t.mat[i],
                    this.release_mat(e.ZIP_BASE_URL + s)
        }
        getAssetSprite3D(t) {
            return this.sprite3D_res[e.ZIP_BASE_URL + t]
        }
        getAssetMat(t) {
            return this.mat_res[e.ZIP_BASE_URL + t]
        }
    }
    class F {
        static getMan(e) {
            let t = this.resUrl.sprite3D[e - 1];
            return this.getSprite3D(t)
        }
        static getSprite3D(e) {
            return W.instance.getAssetSprite3D(e).clone()
        }
        static getMat(e) {
            return W.instance.getAssetMat(e).clone()
        }
    }
    F.RES_BASE_PATH = "u3d/",
    F.RES3D_PATH = "u3d/level/Conventional/",
    F.JSON_PATH = F.RES_BASE_PATH + "levelJson/",
    F.SKY_BOX = F.RES_BASE_PATH + "skybox/skyBox.lmat",
    F.Player = F.RES3D_PATH + "Player.lh",
    F.Man1 = F.RES3D_PATH + "Man1.lh",
    F.Man2 = F.RES3D_PATH + "Man2.lh",
    F.Man3 = F.RES3D_PATH + "Man3.lh",
    F.Man4 = F.RES3D_PATH + "Man4.lh",
    F.Man5 = F.RES3D_PATH + "Man5.lh",
    F.Man6 = F.RES3D_PATH + "Man6.lh",
    F.Man7 = F.RES3D_PATH + "Man7.lh",
    F.Man8 = F.RES3D_PATH + "Man8.lh",
    F.Man9 = F.RES3D_PATH + "Man9.lh",
    F.ManBalloon = F.RES3D_PATH + "ManBalloon.lh",
    F.Tower1 = F.RES3D_PATH + "Tower1.lh",
    F.Tower2 = F.RES3D_PATH + "Tower2.lh",
    F.Tower3 = F.RES3D_PATH + "Tower3.lh",
    F.Tower6 = F.RES3D_PATH + "Tower6.lh",
    F.Tower7 = F.RES3D_PATH + "Tower7.lh",
    F.DotWhite = F.RES3D_PATH + "DotWhite.lh",
    F.DotGhost = F.RES3D_PATH + "DotGhost.lh",
    F.DotOutline = F.RES3D_PATH + "DotOutline.lh",
    F.Arrow = F.RES3D_PATH + "Arrow.lh",
    F.ArrowBig = F.RES3D_PATH + "ArrowBig.lh",
    F.Bomb = F.RES3D_PATH + "Bomb.lh",
    F.Mesh1 = F.RES3D_PATH + "Mesh1.lh",
    F.Grass1 = F.RES3D_PATH + "Grass1.lh",
    F.Grass3 = F.RES3D_PATH + "Grass3.lh",
    F.Cube = F.RES3D_PATH + "Cube.lh",
    F.Key = F.RES3D_PATH + "Key.lh",
    F.WallBuilding = F.RES3D_PATH + "WallBuilding.lh",
    F.Pit1 = F.RES3D_PATH + "Pit1.lh",
    F.Pit2 = F.RES3D_PATH + "Pit2.lh",
    F.Box053 = F.RES3D_PATH + "Box053.lh",
    F.Balkon = F.RES3D_PATH + "Balkon.lh",
    F.Background = F.RES3D_PATH + "Background.lh",
    F.SmokeFx = F.RES3D_PATH + "SmokeFx.lh",
    F.ExplosionFx = F.RES3D_PATH + "ExplosionFx.lh",
    F.ArrowBloodFx = F.RES3D_PATH + "ArrowBloodFx.lh",
    F.ArrowExplosionFx = F.RES3D_PATH + "ArrowExplosionFx.lh",
    F.ConfettiBlastRainbow = F.RES3D_PATH + "ConfettiBlastRainbow.lh",
    F.resUrl = {
        sprite3D: [F.Man1, F.Man2, F.Man3, F.Man4, F.Man5, F.Man6, F.Man7, F.Man8, F.Man9, F.ManBalloon, F.Player, F.Tower1, F.Tower2, F.Tower3, F.Tower6, F.Tower7, F.DotWhite, F.DotGhost, F.DotOutline, F.Arrow, F.ArrowBig, F.Bomb, F.Mesh1, F.Grass1, F.Grass3, F.Cube, F.Key, F.WallBuilding, F.Pit1, F.Pit2, F.Box053, F.Balkon, F.Background, F.SmokeFx, F.ExplosionFx, F.ArrowBloodFx, F.ArrowExplosionFx, F.ConfettiBlastRainbow]
    };
    class Y extends Laya.Script3D {
        constructor() {
            super(),
            this.isLockRot = !1,
            this.isLockPos = !1
        }
        onStart() {
            this.cameraObj = this.owner,
            this.camera = this.cameraObj.getChildAt(0)
        }
        init() {}
        doLockRot() {
            this.isLockRot = !0
        }
        unLockRot() {
            this.isLockRot = !1
        }
        doLockPos() {
            this.isLockPos = !0
        }
        unLockPos() {
            this.isLockPos = !1
        }
        onLateUpdate() {
            this.isLockPos || u.followTar &amp;&amp; u.followTar.transform &amp;&amp; (this.cameraObj.transform.localPosition = u.followTar.transform.localPosition,
            this.cameraObj.transform.localPositionX &lt; u.minEnemyPosX &amp;&amp; (this.cameraObj.transform.localPositionX = u.minEnemyPosX),
            this.cameraObj.transform.localPositionY &lt; u.minEnemyPosY &amp;&amp; (this.cameraObj.transform.localPositionY = u.minEnemyPosY))
        }
    }
    class $ {
        static get instance() {
            return this._instance ? this._instance : this._instance = new $
        }
        init() {
            this.scene2d = new Laya.Scene,
            Laya.stage.addChild(this.scene2d),
            Laya.stage.setChildIndex(this.scene2d, 0),
            this.scene3d = new Laya.Scene3D,
            Laya.stage.addChild(this.scene3d),
            Laya.stage.setChildIndex(this.scene3d, 0),
            this.scene3d.ambientColor = new Laya.Vector3(.72,.72,.72)
        }
    }
    class j {
        constructor() {
            this.mainPos = new Laya.Vector3(5.2,8.04,0),
            this.mainRot = new Laya.Vector3(-45,90,0),
            this.mainField = 100,
            this.playPos = new Laya.Vector3(1.2,8.95,-8.8),
            this.playRot = new Laya.Vector3(-16.5,168.3,0),
            this.playField = 116,
            this.playPos1 = new Laya.Vector3(7.7,8.25,-7.8),
            this.playRot1 = new Laya.Vector3(-7.3,136.1,0),
            this.playField1 = 100,
            this.enemyPos = new Laya.Vector3(15,8.15,-6.3),
            this.enemyRot = new Laya.Vector3(-3.1,125.7,0),
            this.enemyField = 80,
            this.val = .5,
            this.hasEvent = !1
        }
        static get instance() {
            return this._instance ? this._instance : this._instance = new j
        }
        init() {
            this.scene3d = $.instance.scene3d,
            this.cameraObj = new Laya.Sprite3D("CameraNode"),
            this.cameraItem = this.cameraObj.addComponent(Y),
            this.camera = new Laya.Camera,
            this.cameraObj.addChild(this.camera),
            this.camera.enableHDR = !1,
            this.camera.nearPlane = .3,
            this.camera.farPlane = 1500,
            this.camera.fieldOfView = 116,
            this.camera.clearColor = new Laya.Vector4(61 / 255,249 / 255,1,1),
            u.camera = this.camera,
            this.scene3d.addChild(this.cameraObj),
            this.light = new Laya.DirectionLight,
            this.light.name = "directionLight",
            this.scene3d.addChild(this.light),
            this.light.transform.position = new Laya.Vector3(0,3,0),
            this.light.transform.localRotationEuler = this.getTransV3(new Laya.Vector3(46.935,-48.736,46.126)),
            this.light.color = new Laya.Vector3(.4,.4,.4),
            this.fx = F.getSprite3D(F.ConfettiBlastRainbow),
            this.camera.addChild(this.fx),
            this.fx.transform.localPosition = new Laya.Vector3(.06,.69,-1.88),
            this.fx.transform.localRotationEuler = new Laya.Vector3(0,0,0),
            this.fx.transform.localScale = new Laya.Vector3(1.6,1.6,1.6),
            this.changeSkyBox(),
            this.addEventListener()
        }
        changeSkyBox() {
            Laya.loader.create(F.SKY_BOX, Laya.Handler.create(this, e=&gt;{
                let t = e;
                this.camera.clearFlag = Laya.CameraClearFlags.Sky;
                let i = $.instance.scene3d.skyRenderer;
                i.mesh = Laya.SkyBox.instance,
                i.material = t
            }
            ))
        }
        reset(e=null) {
            this.fx.active = !1,
            this.cameraObj.transform.localPosition = u.playerTar,
            this.camera.fieldOfView = this.mainField,
            this.camera.transform.localPosition = this.mainPos,
            this.camera.transform.localRotationEuler = this.mainRot
        }
        mouseDown(e) {
            this.point = new Laya.Vector2(e.stageX,e.stageY)
        }
        mouseMove(e) {
            let t = e.stageX - this.point.x
              , i = e.stageY - this.point.y;
            this.camera.transform.localRotationEulerY += t &gt; 0 ? -this.val : this.val,
            this.camera.transform.localRotationEulerX += i &gt; 0 ? -this.val : this.val,
            this.point = new Laya.Vector2(e.stageX,e.stageY),
            console.log(this.camera.transform.localRotationEuler)
        }
        keyDown(e) {
            38 == e.keyCode ? (this.camera.transform.localPositionZ += this.val,
            console.log(this.camera.transform.localPosition)) : 40 == e.keyCode ? (this.camera.transform.localPositionZ -= this.val,
            console.log(this.camera.transform.localPosition)) : 37 == e.keyCode ? (this.camera.transform.localPositionX += this.val,
            console.log(this.camera.transform.localPosition)) : 39 == e.keyCode ? (this.camera.transform.localPositionX -= this.val,
            console.log(this.camera.transform.localPosition)) : 87 == e.keyCode ? (this.camera.transform.localPositionY += this.val,
            console.log(this.camera.transform.localPosition)) : 83 == e.keyCode ? (this.camera.transform.localPositionY -= this.val,
            console.log(this.camera.transform.localPosition)) : 107 == e.keyCode ? (this.camera.fieldOfView++,
            console.log(this.camera.fieldOfView)) : 109 == e.keyCode &amp;&amp; (this.camera.fieldOfView--,
            console.log(this.camera.fieldOfView))
        }
        ready() {
            Laya.Tween.to(this.camera, {
                fieldOfView: this.playField
            }, 500),
            Laya.Tween.to(this.camera.transform, {
                localPositionX: this.playPos.x,
                localPositionY: this.playPos.y,
                localPositionZ: this.playPos.z,
                localRotationEulerX: this.playRot.x,
                localRotationEulerY: this.playRot.y,
                localRotationEulerZ: this.playRot.z
            }, 500)
        }
        start() {}
        getTransV3(e) {
            let t = e.clone();
            return t.x *= -1,
            t.y += 180,
            t
        }
        doLockPos() {
            this.cameraItem &amp;&amp; this.cameraItem.doLockPos()
        }
        unLockPos() {
            this.cameraItem &amp;&amp; this.cameraItem.unLockPos()
        }
        doLockRot() {
            this.cameraItem &amp;&amp; this.cameraItem.doLockRot()
        }
        unLockRot() {
            this.cameraItem &amp;&amp; this.cameraItem.unLockRot()
        }
        doMove() {
            this.clearTween(),
            Laya.timer.once(500, this, ()=&gt;{
                if (0 == u.allEnemy.length)
                    this.fx.active = !0,
                    m.event(d.GAMEWIN);
                else if (0 == u.allRole.length)
                    m.event(d.GAMELOSE);
                else if (u.shootNum = 0,
                u.overNum = 0,
                u.isEnemyShoot ? (this.returnPlay(),
                u.isEnemyShoot = !1,
                Laya.timer.once(500, this, ()=&gt;{
                    m.event(d.CAN_SHOOT)
                }
                )) : (u.isEnemyShoot = !0,
                m.event(d.ENEMY_SHOOT),
                Laya.timer.once(500, this, this.moveToPlayer)),
                u.arrows.length &gt; 200) {
                    let e = u.arrows.length - 200;
                    for (let t = 0; t &lt; e; ++t) {
                        let e = u.arrows.shift();
                        e.removeSelf(),
                        e.destroy()
                    }
                }
            }
            )
        }
        moveToEnemy() {
            this.clearTween(),
            Laya.Tween.to(this.cameraObj.transform, {
                localPositionX: u.followTar.transform.position.x,
                localPositionY: u.followTar.transform.position.y,
                localPositionZ: u.followTar.transform.position.z
            }, 200, null, Laya.Handler.create(this, this.unLockPos)),
            Laya.Tween.to(this.camera.transform, {
                localPositionX: this.enemyPos.x - 5,
                localPositionY: this.playPos.y - 3,
                localPositionZ: this.enemyPos.z - 3,
                localRotationEulerX: this.enemyRot.x,
                localRotationEulerY: this.enemyRot.y,
                localRotationEulerZ: this.enemyRot.z
            }, 1e3),
            Laya.Tween.to(this.camera, {
                fieldOfView: this.enemyField
            }, 1e3)
        }
        moveToPlayer() {
            this.doLockPos(),
            this.clearTween(),
            Laya.Tween.to(this.cameraObj.transform, {
                localPositionX: u.playerTar.x,
                localPositionY: u.playerTar.y,
                localPositionZ: u.playerTar.z
            }, 1e3),
            Laya.Tween.to(this.camera.transform, {
                localPositionX: this.playPos1.x,
                localPositionY: this.playPos1.y,
                localPositionZ: this.playPos1.z,
                localRotationEulerX: this.playRot1.x,
                localRotationEulerY: this.playRot1.y,
                localRotationEulerZ: this.playRot1.z
            }, 1e3),
            Laya.Tween.to(this.camera, {
                fieldOfView: this.playField1
            }, 1e3)
        }
        returnPlay() {
            this.clearTween(),
            Laya.Tween.to(this.cameraObj.transform, {
                localPositionX: u.playerTar.x,
                localPositionY: u.playerTar.y,
                localPositionZ: u.playerTar.z
            }, 500),
            Laya.Tween.to(this.camera.transform, {
                localPositionX: this.playPos.x,
                localPositionY: this.playPos.y,
                localPositionZ: this.playPos.z,
                localRotationEulerX: this.playRot.x,
                localRotationEulerY: this.playRot.y,
                localRotationEulerZ: this.playRot.z
            }, 500),
            Laya.Tween.to(this.camera, {
                fieldOfView: this.playField
            }, 500)
        }
        clearTween() {
            Laya.Tween.clearAll(this.cameraObj.transform),
            Laya.Tween.clearAll(this.camera.transform),
            Laya.Tween.clearAll(this.camera)
        }
        addEventListener() {
            m.on(d.GAMELOSE, this, this.clearTime),
            m.on(d.TEST_CHANGE, this, this.changeTest),
            m.on(d.TEST_SMALL, this, this.testSmall)
        }
        changeTest() {
            this.hasEvent ? (Laya.stage.off(Laya.Event.MOUSE_DOWN, this, this.mouseDown),
            Laya.stage.off(Laya.Event.MOUSE_MOVE, this, this.mouseMove),
            Laya.stage.off(Laya.Event.KEY_DOWN, this, this.keyDown)) : (Laya.stage.on(Laya.Event.MOUSE_DOWN, this, this.mouseDown),
            Laya.stage.on(Laya.Event.MOUSE_MOVE, this, this.mouseMove),
            Laya.stage.on(Laya.Event.KEY_DOWN, this, this.keyDown)),
            this.hasEvent = !this.hasEvent
        }
        testSmall() {
            .5 == this.val ? this.val = .1 : this.val = .5
        }
        clearTime() {
            Laya.timer.clearAll(this)
        }
        destroyCamera() {
            this.camera &amp;&amp; (this.camera.removeSelf(),
            this.camera.destroy(),
            this.cameraObj.removeSelf())
        }
    }
    class X {
        constructor() {
            this.effectPrefabPool = {}
        }
        static get instance() {
            return this._instance ? this._instance : this._instance = new X
        }
        init() {
            this.effectPool = new Laya.Sprite3D("effectNode"),
            $.instance.scene3d.addChild(this.effectPool)
        }
        createEffect(t, i, s, n=-1) {
            let a;
            if (!this.effectPool &amp;&amp; this.init(),
            this.effectPrefabPool[t]) {
                let e = this.effectPrefabPool[t];
                a = Laya.Pool.getItemByCreateFun(t, e.clone, e),
                this.effectPool.addChild(a),
                a.transform.position = s
            } else {
                let n = Laya.loader.getRes(e.ZIP_BASE_URL + i);
                n.name = t,
                this.effectPrefabPool[t] = n,
                a = Laya.Pool.getItemByCreateFun(t, n.clone, n),
                this.effectPool.addChild(a),
                a.transform.position = s
            }
            return a.recover = (e=&gt;{
                e.removeSelf(),
                Laya.Pool.recover(e.name, a)
            }
            ),
            -1 != n &amp;&amp; Laya.timer.once(n, a, a.recover, [a]),
            a
        }
        clearAllEffect() {
            Laya.timer.clearAll(this);
            let e = this.effectPool.numChildren;
            for (let t = 0; t &lt; e; t++) {
                let e = this.effectPool.getChildAt(0);
                e.removeSelf(),
                Laya.Pool.recover(e.name, e)
            }
            console.log("æ¸…ç†effectPoolå®Œæˆ")
        }
    }
    class J {
        constructor() {
            this.canVib = !0
        }
        static get instance() {
            return this._instance ? this._instance : this._instance = new J
        }
        get isVibrate() {
            return null == Laya.LocalStorage.getItem(t.ISVIBRATE) || null == Laya.LocalStorage.getItem(t.ISVIBRATE) || "" == Laya.LocalStorage.getItem(t.ISVIBRATE) ? (Laya.LocalStorage.setItem(t.ISVIBRATE, "0"),
            !0) : "0" == Laya.LocalStorage.getItem(t.ISVIBRATE) || "1" != Laya.LocalStorage.getItem(t.ISVIBRATE) &amp;&amp; void 0
        }
        set isVibrate(e) {
            let i = e ? "0" : "1";
            Laya.LocalStorage.setItem(t.ISVIBRATE, i)
        }
        vibrateShort(e=15) {
            if (i.getIsMini() &amp;&amp; this.canVib) {
                this.canVib = !1;
                let t = Math.ceil(e / 15)
                  , s = 0
                  , n = {
                    count: t,
                    index: s
                };
                Laya.timer.loop(16, n, ()=&gt;{
                    this.isVibrate ? i.getBrowser().vibrateShort() : (this.canVib = !0,
                    Laya.timer.clearAll(n)),
                    ++s &gt; t &amp;&amp; (this.canVib = !0,
                    Laya.timer.clearAll(n))
                }
                )
            }
        }
        vibrateLong() {
            i.getIsMini() &amp;&amp; i.getBrowser().vibrateLong()
        }
    }
    class z extends Laya.Script3D {
        constructor() {
            super(),
            this.nodeDic = {}
        }
        get transform() {
            return this.obj ? this.obj.transform : null
        }
        get position() {
            return this.transform ? this.transform.position.clone() : null
        }
        set position(e) {
            this.transform &amp;&amp; (this.transform.position = e)
        }
        get localPosition() {
            return this.transform ? this.transform.localPosition.clone() : null
        }
        set localPosition(e) {
            this.transform &amp;&amp; (this.transform.localPosition = e)
        }
        get rotation() {
            return this.transform ? this.transform.rotation.clone() : null
        }
        set rotation(e) {
            this.transform &amp;&amp; (this.transform.rotation = e)
        }
        get localRotation() {
            return this.transform ? this.transform.localRotation.clone() : null
        }
        set localRotation(e) {
            this.transform &amp;&amp; (this.transform.localRotation = e)
        }
        get rotationEuler() {
            return this.transform ? this.transform.rotationEuler.clone() : null
        }
        set rotationEuler(e) {
            this.transform &amp;&amp; (this.transform.rotationEuler = e)
        }
        get localRotationEuler() {
            return this.transform ? this.transform.localRotationEuler.clone() : null
        }
        set localRotationEuler(e) {
            this.transform &amp;&amp; (this.transform.localRotationEuler = e)
        }
        get scale() {
            return this.transform ? this.transform.getWorldLossyScale().clone() : null
        }
        set scale(e) {
            this.transform &amp;&amp; this.transform.setWorldLossyScale(e)
        }
        get localScale() {
            return this.transform ? this.transform.localScale.clone() : null
        }
        set localScale(e) {
            this.transform &amp;&amp; (this.transform.localScale = e)
        }
        get localRotationEulerX() {
            return this.transform ? this.transform.localRotationEulerX : null
        }
        set localRotationEulerX(e) {
            this.transform &amp;&amp; (this.transform.localRotationEulerX = e)
        }
        get localRotationEulerY() {
            return this.transform ? this.transform.localRotationEulerY : null
        }
        set localRotationEulerY(e) {
            this.transform &amp;&amp; (this.transform.localRotationEulerY = e)
        }
        get localRotationEulerZ() {
            return this.transform ? this.transform.localRotationEulerZ : null
        }
        set localRotationEulerZ(e) {
            this.transform &amp;&amp; (this.transform.localRotationEulerZ = e)
        }
        get localPositionX() {
            return this.transform ? this.transform.localPositionX : null
        }
        set localPositionX(e) {
            this.transform &amp;&amp; (this.transform.localPositionX = e)
        }
        get localPositionY() {
            return this.transform ? this.transform.localPositionY : null
        }
        set localPositionY(e) {
            this.transform &amp;&amp; (this.transform.localPositionY = e)
        }
        get localPositionZ() {
            return this.transform ? this.transform.localPositionZ : null
        }
        set localPositionZ(e) {
            this.transform &amp;&amp; (this.transform.localPositionZ = e)
        }
        get V3ZERO() {
            return this._ZERO || (this._ZERO = new Laya.Vector3(0,0,0)),
            this._ZERO
        }
        get V3ONE() {
            return this._ONE || (this._ONE = new Laya.Vector3(1,1,1)),
            this._ONE
        }
        get V3UP() {
            return this._UP || (this._UP = new Laya.Vector3(0,1,0)),
            this._UP
        }
        positionWorld2local(e, t) {
            let i = new Laya.Vector3(0,0,0)
              , s = new Laya.Matrix4x4;
            return t.transform.worldMatrix.invert(s),
            Laya.Vector3.transformCoordinate(e, s, i),
            i
        }
        getChildNodesArray(e) {
            let t = [];
            for (let i = 0; i &lt; e.numChildren; i++) {
                let s = e.getChildAt(i);
                s &amp;&amp; t.push(s)
            }
            return t
        }
        FindAndGetAllChildren(e, t) {
            if (e.numChildren &gt; 0) {
                this.getChildNodesArray(e).forEach(e=&gt;{
                    if (t.push(e),
                    !(this.getChildNodesArray(e).length &gt; 0))
                        return t;
                    this.FindAndGetAllChildren(e, t)
                }
                )
            }
            return null
        }
        getAllChildrenArray(e) {
            let t = [];
            return this.FindAndGetAllChildren(e, t),
            t
        }
        getAllChildrenMap(e) {
            let t = e.id
              , i = this.nodeDic[t];
            if (!i) {
                let s = this.getAllChildrenArray(e);
                i = new Map;
                for (let e = 0; e &lt; s.length; e++)
                    i.has(s[e].name) || i.set(s[e].name, s[e]);
                this.nodeDic || (this.nodeDic = new Array),
                this.nodeDic[t] = i
            }
            return i
        }
        getNodeByMap(e, t) {
            return t.has(e) ? t.get(e) : null
        }
        getNodeByName(e) {
            if (!this.obj)
                return null;
            let t = this.obj.id
              , i = this.nodeDic[t];
            if (!i) {
                let e = this.getAllChildrenArray(this.obj);
                i = new Map;
                for (let t = 0; t &lt; e.length; t++)
                    i.has(e[t].name) || i.set(e[t].name, e[t]);
                this.nodeDic[t] = i
            }
            return i.has(e) ? i.get(e) : null
        }
    }
    class K extends z {
        constructor() {
            super(),
            this.isShoot = !1,
            this.dTimes = 0
        }
        init(e, t, i, s, n) {
            this.obj = this.owner,
            u.shootNum++,
            this.isPlayer = n,
            this.moveSpeed = t,
            this.isShoot = !1,
            this.dTimes = 0,
            this.obj.active = !1;
            let a = 100 * Math.floor(i / s);
            Laya.timer.once(a, this, ()=&gt;{
                this.isShoot = !0,
                this.obj.active = !0,
                L.instance.shootSound()
            }
            ),
            this.localRotationEuler = new Laya.Vector3(0,0,0),
            this.rigid = this.obj.getComponent(Laya.Rigidbody3D),
            this.rigid.collisionGroup = Laya.Physics3DUtils.COLLISIONFILTERGROUP_CUSTOMFILTER3,
            this.rigid.enabled = !0;
            let o = this.getInitPosZ(i);
            if (this.isPlayer) {
                let t = u.dotPoint.y;
                1 != s &amp;&amp; (t += 2 * Math.random() - 1,
                1 == u.allEnemy.length &amp;&amp; 0 != i &amp;&amp; (o += 4 * Math.random() - 2)),
                this.position = new Laya.Vector3(e.x - 1,t,o),
                this.rigid.canCollideWith = Laya.Physics3DUtils.COLLISIONFILTERGROUP_ALLFILTER ^ Laya.Physics3DUtils.COLLISIONFILTERGROUP_CUSTOMFILTER1 ^ Laya.Physics3DUtils.COLLISIONFILTERGROUP_CUSTOMFILTER3
            } else
                1 != s &amp;&amp; (o += 6 * Math.random() - 3),
                this.position = new Laya.Vector3(e.x,e.y + Math.random(),o),
                this.rigid.canCollideWith = Laya.Physics3DUtils.COLLISIONFILTERGROUP_ALLFILTER ^ Laya.Physics3DUtils.COLLISIONFILTERGROUP_CUSTOMFILTER2 ^ Laya.Physics3DUtils.COLLISIONFILTERGROUP_CUSTOMFILTER3
        }
        getInitPosZ(e) {
            let t = this.isPlayer ? u.allEnemy : u.allRole
              , i = [];
            for (let e of t) {
                let t = Number(e.transform.position.z.toFixed(1));
                i.includes(t) || i.push(t)
            }
            return i.sort((e,t)=&gt;Math.random() - .5),
            i[e % i.length]
        }
        onUpdate() {
            if (!this.isShoot)
                return;
            let e = Laya.timer.delta / 800;
            this.dTimes += e;
            let t = new Laya.Vector3(this.moveSpeed.x,this.moveSpeed.y + u.gravity * this.dTimes,0)
              , i = 180 * Math.atan(t.y / t.x) / Math.PI;
            this.localPositionX += this.isPlayer ? -t.x * e : t.x * e,
            this.localPositionY += t.y * e,
            this.localRotationEulerZ = this.isPlayer ? -i : i + 180,
            this.position.y &lt; 0 &amp;&amp; this.shootOver()
        }
        shootRole(e) {
            m.event(d.DO_DEATH, [e, this.obj.name.includes("Big")]);
            let t = this.position.clone()
              , s = this.rotationEuler.clone();
            this.obj.removeSelf();
            let n = e.getChildAt(0);
            i.getNodeByName("CATRigSpine1", e).addChild(this.obj),
            this.isPlayer ? t.x -= .5 : t.x += .5,
            this.position = t,
            this.rotationEuler = s;
            let a = this.localScale.x / n.transform.localScaleX;
            this.localScale = new Laya.Vector3(a,a,a),
            this.obj.name.includes("Big") || this.showFx(),
            this.shootOver(!1)
        }
        shootBallon(e) {
            let t = e.getChildAt(0).getChildAt(0).getChildAt(1)
              , i = this.position.clone()
              , s = this.rotationEuler.clone();
            t.addChild(this.obj),
            this.position = i,
            this.rotationEuler = s,
            this.localScale = new Laya.Vector3(.058,.058,.058),
            u.canMove = !1,
            this.shootOver(),
            m.event(d.BALLON_ACTION)
        }
        shootOver(e=!0) {
            if (!this.isShoot)
                return;
            this.isShoot = !1,
            this.rigid.enabled = !1,
            e &amp;&amp; L.instance.hitingSound();
            let t = this.localRotationEulerZ;
            Laya.Tween.to(this.transform, {
                localRotationEulerZ: t + 2
            }, 100, Laya.Ease.backInOut, Laya.Handler.create(this, ()=&gt;{
                Laya.Tween.to(this.transform, {
                    localRotationEulerZ: t - 2
                }, 100, Laya.Ease.backInOut, Laya.Handler.create(this, ()=&gt;{
                    Laya.Tween.to(this.transform, {
                        localRotationEulerZ: t
                    }, 50, null, Laya.Handler.create(this, this.destroy))
                }
                ))
            }
            )),
            this.obj.name.includes("Big") &amp;&amp; X.instance.createEffect("ExploFx", F.ArrowExplosionFx, this.position, 1e3),
            j.instance.doLockPos(),
            u.overNum++,
            u.shootNum == u.overNum &amp;&amp; u.canMove &amp;&amp; j.instance.doMove()
        }
        showFx() {
            let e = X.instance.createEffect("ArrowBloodFx", F.ArrowBloodFx, this.position, 1e3)
              , t = new Laya.Vector3;
            Laya.Vector3.add(this.localRotationEuler, new Laya.Vector3(0,-90,0), t),
            e.transform.localRotationEuler = t
        }
        onTriggerEnter(t) {
            if (!e.isGameStart)
                return;
            let i = t.owner;
            console.log("arrow", i.name),
            i.name.includes("ManBalloon") ? this.isPlayer &amp;&amp; this.shootBallon(i) : i.name.includes("Man") ? this.shootRole(i) : (i.name.includes("Mesh") || i.name.includes("MergePodium") || i.name.includes("Grass") || i.name.includes("Tower") || i.name.includes("Level") || i.name.includes("Balkon") || i.name.includes("Layer1") &amp;&amp; this.isPlayer || i.name.includes("Box") || i.name.includes("Pit") || i.name.includes("Tower")) &amp;&amp; (this.shootOver(),
            (i.name.includes("Layer1") || i.name.includes("Mesh") || i.name.includes("Level")) &amp;&amp; u.desArrs.push(this.obj))
        }
        onDestroy() {
            Laya.timer.clearAll(this),
            Laya.Tween.clearAll(this.transform)
        }
    }
    class Z extends z {
        constructor() {
            super(),
            this.initial_rot_y = 0,
            this.isAction = !1
        }
        get level() {
            return this._level
        }
        set level(e) {
            this._level = e
        }
        initSelf(e) {
            this.obj = this.owner,
            this.Anim = this.obj.getChildAt(0).getComponent(Laya.Animator),
            this.AnimLayer = this.Anim.getControllerLayer(),
            this.selfCol = this.obj.getComponent(Laya.PhysicsCollider),
            this.CATRigSpine1 = this.getNodeByName("CATRigSpine1"),
            this.Luk = this.getNodeByName(`Luk_Lvl${this.level &gt;= 8 ? 7 : this.level}`),
            this.Pushka = this.getNodeByName("Pushka"),
            this.level &gt;= 2 &amp;&amp; (this.Plecho_L = this.getNodeByName(`Plecho_L_Lvl${this.level &gt; 6 ? 6 : this.level}`),
            this.Plecho_R = this.getNodeByName(`Plecho_R_Lvl${this.level &gt; 6 ? 6 : this.level}`)),
            this.level &gt;= 3 &amp;&amp; (this.Shlem = this.getNodeByName(`Shlem_Lvl${this.level &gt; 7 ? 7 : this.level}`)),
            this.level &gt;= 4 &amp;&amp; (this.ShitModel = this.getNodeByName("ShitModel")),
            this.Pushka.active = !1,
            this.isPlayer = e,
            this.hp = this.level,
            this.arrowNum = this.isPlayer ? this.level * this.level : Math.round(this.level * this.level / 2),
            this.initial_rot_y = this.CATRigSpine1.transform.localRotationEulerY
        }
        initIdleAnim() {
            this.isAction = !1;
            let e = Math.random();
            this.changeAnim(e &lt; .33 ? c.Idle : e &lt; .66 ? c.IdleHappy : c.IdleBreath)
        }
        changeAnim(e, t=!0) {
            this.curAnimName != e &amp;&amp; (this.curAnimName = e,
            this.curAnimName == c.Idle || this.curAnimName == c.IdleHappy || this.curAnimName == c.IdleBreath || this.curAnimName == c.CannonIdle ? this.Anim.crossFade(this.curAnimName, .1) : this.Anim.play(this.curAnimName),
            this.Anim.speed = h[this.curAnimName] ? h[this.curAnimName] : 1,
            this.AnimLayer.getAnimatorState(this.curAnimName).clip.islooping = t,
            Laya.timer.clear(this, this.onAnimComplete),
            this.curAnimName != c.Land &amp;&amp; this.curAnimName != c.Jumping &amp;&amp; this.curAnimName != c.shoot || Laya.timer.frameLoop(1, this, this.onAnimComplete))
        }
        onAnimComplete() {
            this.AnimLayer.getCurrentPlayState().normalizedTime &gt;= 1 &amp;&amp; (this.curAnimName == c.shoot ? Laya.Tween.to(this.CATRigSpine1.transform, {
                localRotationEulerY: this.initial_rot_y
            }, 200, null, Laya.Handler.create(this, this.initIdleAnim)) : this.initIdleAnim(),
            Laya.timer.clear(this, this.onAnimComplete))
        }
        showArrow() {
            for (let e = 0; e &lt; this.Luk.numChildren; ++e)
                this.Luk.getChildAt(e).active = !0
        }
        hideArrow() {
            for (let e = 0; e &lt; this.Luk.numChildren; ++e)
                this.Luk.getChildAt(e).active = !1
        }
        onLateUpdate() {
            this.isAction &amp;&amp; (this.isPlayer,
            this.CATRigSpine1.transform.localRotationEulerY = .8 * this.CATRigSpine1.transform.localRotationEulerY + .2 * u.angle)
        }
        shootArrow(e) {
            this.changeAnim(c.shoot, !1),
            Laya.timer.once(150, this, ()=&gt;{
                if (this.hideArrow(),
                this.level &gt;= 7)
                    for (let t = 0; t &lt; this.Luk.numChildren; ++t) {
                        let i;
                        if (i = this.Luk.getChildAt(t).name.includes("Big") ? F.getSprite3D(F.ArrowBig) : F.getSprite3D(F.Arrow),
                        !this.isPlayer) {
                            i.getChildAt(0).meshRenderer.materials[0].albedoColor = new Laya.Vector4(1,9 / 255,0,1)
                        }
                        u.levelObj.addChild(i),
                        i.addComponent(K).init(this.Luk.transform.position, e, t, this.level, this.isPlayer),
                        u.arrows.push(i)
                    }
                else
                    for (let t = 0; t &lt; this.arrowNum; ++t) {
                        let i = F.getSprite3D(F.Arrow);
                        if (!this.isPlayer) {
                            i.getChildAt(0).meshRenderer.materials[0].albedoColor = new Laya.Vector4(1,9 / 255,0,1)
                        }
                        u.levelObj.addChild(i),
                        i.addComponent(K).init(this.Luk.transform.position, e, t, this.level, this.isPlayer),
                        u.arrows.push(i),
                        this.isPlayer &amp;&amp; 0 == u.allRole.indexOf(this.obj) &amp;&amp; (u.followTar = i)
                    }
                this.isPlayer &amp;&amp; 0 == u.allRole.indexOf(this.obj) &amp;&amp; j.instance.moveToEnemy()
            }
            )
        }
        doDefence() {
            this.Pushka.active &amp;&amp; (this.Pushka.active = !1,
            this.Luk.active = !0),
            this.ShitModel &amp;&amp; this.ShitModel.active ? this.changeAnim(c.Defence, !1) : this.initIdleAnim()
        }
        checkDeath() {
            this.hp &gt; 0 &amp;&amp; this.hp--,
            0 == this.hp ? (Laya.timer.clear(this, this.initIdleAnim),
            this.doDeath()) : this.ShitModel ? this.hp &lt; 4 &amp;&amp; (this.ShitModel.active = !1,
            this.changeAnim(c.Hit, !1),
            Laya.timer.once(400, this, this.initIdleAnim)) : (this.changeAnim(c.Hit, !1),
            Laya.timer.once(400, this, this.initIdleAnim))
        }
        doDeath() {
            this.selfCol.enabled = !1,
            this.changeAnim(c.Hit, !1),
            this.obj.getChildAt(0).getChildAt(0).skinnedMeshRenderer.material.albedoColor = new Laya.Vector4(156 / 255,156 / 255,156 / 255,1),
            Laya.Tween.to(this.transform, {
                localPositionX: this.localPositionX + (this.isPlayer ? -.3 : .3),
                localPositionY: this.localPositionY + .3,
                localRotationEulerZ: -70
            }, 400, null, Laya.Handler.create(this, this.destroy))
        }
    }
    class Q extends Z {
        constructor() {
            super()
        }
        onStart() {
            if (this.level = Number(this.owner.name.split("Man")[1]),
            this.initSelf(!1),
            this.initArgs(),
            this.initColor(),
            this.initEvent(),
            this.hideArrow(),
            this.initIdleAnim(),
            9 == this.level) {
                let e = this.obj.getChildAt(1);
                this.HorseAnim = e.getComponent(Laya.Animator),
                this.HorseAnim.play(r.Idle)
            }
            this.localRotationEuler = new Laya.Vector3(0,180,0)
        }
        initArgs() {
            this.selfCol.collisionGroup = Laya.Physics3DUtils.COLLISIONFILTERGROUP_CUSTOMFILTER2,
            u.enemyNum += 2 * this.arrowNum,
            u.allEnemy.push(this.obj),
            u.allEnemyNum = u.allEnemy.length,
            u.minEnemyPosX = Math.min(this.position.x, u.minEnemyPosX),
            u.minEnemyPosY = Math.min(this.position.y, u.minEnemyPosY)
        }
        initColor() {
            this.Luk.meshRenderer.materials[0].albedoColor = new Laya.Vector4(207 / 255,44 / 255,44 / 255,1);
            for (let e = 0; e &lt; this.Luk.numChildren; ++e) {
                this.Luk.getChildAt(e).getChildAt(0).meshRenderer.materials[0].albedoColor = new Laya.Vector4(1,9 / 255,0,1)
            }
            if (this.level &gt;= 2) {
                if (this.Plecho_L) {
                    this.Plecho_L.meshRenderer.materials[0].albedoColor = new Laya.Vector4(207 / 255,44 / 255,44 / 255,1)
                }
                if (this.Plecho_R) {
                    this.Plecho_R.meshRenderer.materials[0].albedoColor = new Laya.Vector4(207 / 255,44 / 255,44 / 255,1)
                }
            }
            if (this.level &gt;= 3 &amp;&amp; this.Shlem) {
                this.Shlem.meshRenderer.materials[0].albedoColor = new Laya.Vector4(207 / 255,44 / 255,44 / 255,1)
            }
            if (this.level &gt;= 4 &amp;&amp; this.ShitModel) {
                this.ShitModel.meshRenderer.materials[0].albedoColor = new Laya.Vector4(207 / 255,44 / 255,44 / 255,1)
            }
        }
        initEvent() {
            m.on(d.ENEMY_SHOOT, this, this.doShoot),
            m.on(d.CAN_SHOOT, this, this.doDefence)
        }
        clearEvent() {
            m.off(d.ENEMY_SHOOT, this, this.doShoot),
            m.off(d.CAN_SHOOT, this, this.doDefence)
        }
        doShoot() {
            if (!this.selfCol.enabled)
                return;
            let e = new Laya.Vector3
              , t = Math.round(50 * Math.random())
              , i = 40 + Math.round(80 * Math.random());
            17 == s.reallyLevelIndex &amp;&amp; (t += 10,
            i += 10),
            e.x = Math.cos(Math.PI / 180 * t) * i / 5.5,
            e.y = Math.sin(Math.PI / 180 * t) * i / 5.5,
            this.isAction = !0,
            this.showArrow(),
            this.changeAnim(c.MaxAim),
            Laya.timer.once(500, this, this.shootArrow, [e])
        }
        onDestroy() {
            this.Anim.speed = 0,
            this.clearEvent(),
            Laya.timer.clearAll(this),
            Laya.Tween.clearAll(this.transform),
            u.enemyNum -= 2 * this.arrowNum,
            m.event(d.UPDATE_NUM);
            let e = u.allEnemy.indexOf(this.obj);
            u.allEnemy.splice(e, 1),
            u.minEnemyPosX = 99,
            u.minEnemyPosY = 99;
            for (let e of u.allEnemy)
                u.minEnemyPosX = Math.min(e.transform.position.x, u.minEnemyPosX),
                u.minEnemyPosY = Math.min(e.transform.position.y, u.minEnemyPosY);
            u.enemyDeathNum++
        }
    }
    class q extends z {
        constructor() {
            super()
        }
        onStart() {
            this.obj = this.owner
        }
        onTriggerEnter(t) {
            if (!e.isGameStart)
                return;
            let i = t.owner;
            console.log("balloon", i.name),
            (i.name.includes("Mesh") || i.name.includes("MergePodium") || i.name.includes("Grass") || i.name.includes("Tower") || i.name.includes("Level") || i.name.includes("Balkon") || i.name.includes("Layer1") || i.name.includes("Box056") || i.name.includes("Pit") || i.name.includes("Tower")) &amp;&amp; m.event(d.BALLON_BOMB)
        }
    }
    class ee extends z {
        constructor() {
            super(),
            this.dTimes = 0,
            this.isAction = !1
        }
        onStart() {
            this.obj = this.owner;
            let e = this.obj.getChildAt(0);
            e.addComponent(q),
            e.getChildAt(1).addComponent(Q),
            m.on(d.BALLON_ACTION, this, this.doAction),
            m.on(d.BALLON_BOMB, this, this.doBomb)
        }
        onLateUpdate() {
            if (this.isAction) {
                let e = Laya.timer.delta / 800;
                this.dTimes += e,
                this.localPositionY += u.gravity * this.dTimes * e,
                u.camera.transform.localPositionY += u.gravity * this.dTimes * e - .15,
                this.position.y &lt; 0 &amp;&amp; this.doBomb()
            }
        }
        doAction() {
            if (this.isAction)
                return;
            this.isAction = !0;
            let e = this.obj.getChildAt(0).getChildAt(0).getChildAt(1);
            Laya.Tween.to(e.transform, {
                localScaleX: 1,
                localScaleY: 1,
                localScaleZ: 1
            }, 500)
        }
        doBomb() {
            u.canMove || (u.canMove = !0,
            u.shootNum == u.overNum &amp;&amp; j.instance.doMove()),
            L.instance.boomtSound(),
            X.instance.createEffect("BombFx", F.ExplosionFx, this.position, 1e3);
            for (let e of u.allEnemy) {
                if (Laya.Vector3.distance(e.transform.position, this.position) &lt;= 5) {
                    let t = e.getComponent(Q);
                    t &amp;&amp; t.selfCol.enabled &amp;&amp; t.doDeath()
                }
            }
            let e = this.obj.getChildAt(0).getChildAt(0).getChildAt(1);
            Laya.Tween.clearAll(e.transform),
            this.isAction = !1,
            this.obj.removeSelf(),
            this.obj.destroy()
        }
        onDestroy() {
            m.off(d.BALLON_ACTION, this, this.doAction),
            m.off(d.BALLON_BOMB, this, this.doBomb)
        }
    }
    class te extends z {
        constructor() {
            super(),
            this.isShoot = !1,
            this.dTimes = 0
        }
        init(e, t) {
            this.obj = this.owner,
            u.shootNum++,
            this.moveSpeed = t,
            this.isShoot = !0,
            this.position = new Laya.Vector3(e.x,e.y + 2,e.z),
            this.rigid = this.obj.getComponent(Laya.Rigidbody3D),
            this.rigid.collisionGroup = Laya.Physics3DUtils.COLLISIONFILTERGROUP_CUSTOMFILTER3,
            this.rigid.canCollideWith = Laya.Physics3DUtils.COLLISIONFILTERGROUP_ALLFILTER ^ Laya.Physics3DUtils.COLLISIONFILTERGROUP_CUSTOMFILTER1 ^ Laya.Physics3DUtils.COLLISIONFILTERGROUP_CUSTOMFILTER3
        }
        onLateUpdate() {
            if (!this.isShoot)
                return;
            let e = Laya.timer.delta / 800;
            this.dTimes += e;
            let t = new Laya.Vector3(this.moveSpeed.x,this.moveSpeed.y + u.gravity * this.dTimes,0)
              , i = 180 * Math.atan(t.y / t.x) / Math.PI;
            this.localPositionX -= t.x * e,
            this.localPositionY += t.y * e,
            this.localRotationEulerZ = -i,
            this.position.y &lt; 0 &amp;&amp; this.shootOver()
        }
        doBomb() {
            if (u.isCol = !0,
            u.desArrs.length &gt; 0) {
                let e = u.desArrs.length;
                for (let t = 0; t &lt; e; ++t) {
                    let e = u.desArrs.pop();
                    e.removeSelf(),
                    e.destroy()
                }
            }
            this.shootOver(),
            m.event(d.BOMB_ACTION)
        }
        shootOver() {
            this.isShoot &amp;&amp; (this.isShoot = !1,
            j.instance.doLockPos(),
            L.instance.boomtSound(),
            5 == s.levelIndex ? u.isCol &amp;&amp; u.isBomb &amp;&amp; this.checkDeath() : this.checkDeath(),
            this.rigid.enabled = !1,
            u.overNum++,
            u.shootNum == u.overNum &amp;&amp; (u.isBomb = !0,
            j.instance.doMove()),
            X.instance.createEffect("BombFx", F.ExplosionFx, this.position, 1e3),
            this.obj.removeSelf(),
            this.obj.destroy())
        }
        checkDeath() {
            for (let e of u.allEnemy) {
                if (Laya.Vector3.distance(e.transform.position, this.position) &lt;= 5) {
                    let t = e.getComponent(Q);
                    t &amp;&amp; t.selfCol.enabled &amp;&amp; t.doDeath()
                }
            }
        }
        onTriggerEnter(t) {
            if (!e.isGameStart)
                return;
            let i = t.owner;
            console.log(i.name),
            i.name.includes("Man") || i.name.includes("Mesh") || i.name.includes("Grass") || i.name.includes("Tower") || i.name.includes("Level") || i.name.includes("Balkon") || i.name.includes("Pit") || i.name.includes("Box") ? this.shootOver() : i.name.includes("Layer1") &amp;&amp; this.doBomb()
        }
        onDestroy() {
            Laya.timer.clearAll(this),
            Laya.Tween.clearAll(this.transform)
        }
    }
    class ie extends Z {
        constructor() {
            super()
        }
        get tarPoint() {
            return this._tarPoint
        }
        set tarPoint(e) {
            this._tarPoint = e
        }
        init(e, t, i) {
            this.tarPoint = e,
            this.level = t,
            this.initSelf(!0),
            this.initArgs(),
            this.initEvent(),
            this.hideArrow(),
            this.localPosition = e.transform.localPosition,
            this.localRotationEuler = new Laya.Vector3(0,0,0),
            this.localScale = new Laya.Vector3(1,1,1),
            i ? this.changeAnim(c.Jumping, !1) : this.initIdleAnim()
        }
        initArgs() {
            this.Luk.active = !0,
            this.rotMinMap = new Map;
            for (let e = 0; e &lt; this.Luk.numChildren; ++e) {
                let t = this.Luk.getChildAt(e);
                this.rotMinMap.set(t.id, 1 == this.level ? t.transform.localPositionY - .5 : t.transform.localPositionX + .5),
                1 == this.level ? t.transform.localPositionY -= .5 : t.transform.localPositionX += .5
            }
            this.selfCol.collisionGroup = Laya.Physics3DUtils.COLLISIONFILTERGROUP_CUSTOMFILTER1,
            u.roleNum += this.arrowNum,
            u.allRole.push(this.obj)
        }
        initEvent() {
            m.on(d.START_ACTION, this, this.startAction),
            m.on(d.DO_ACTION, this, this.doAction),
            m.on(d.STOP_ACTION, this, this.stopAction),
            m.on(d.ENEMY_SHOOT, this, this.doDefence),
            m.on(d.CAN_SHOOT, this, this.initIdleAnim),
            m.on(d.CHANGE_BOMB, this, this.changeBomb)
        }
        clearEvent() {
            m.off(d.START_ACTION, this, this.startAction),
            m.off(d.DO_ACTION, this, this.doAction),
            m.off(d.STOP_ACTION, this, this.stopAction),
            m.off(d.ENEMY_SHOOT, this, this.doDefence),
            m.off(d.CAN_SHOOT, this, this.initIdleAnim),
            m.off(d.CHANGE_BOMB, this, this.changeBomb)
        }
        doTake() {
            this.changeAnim(c.Falling),
            Laya.Tween.clearAll(this.transform),
            Laya.Tween.to(this.transform, {
                localPositionY: 2.66
            }, 200)
        }
        doTakeOff() {
            this.changeAnim(c.Land, !1),
            Laya.Tween.clearAll(this.transform),
            Laya.Tween.to(this.transform, {
                localPositionX: this.tarPoint.transform.localPositionX,
                localPositionY: 0,
                localPositionZ: this.tarPoint.transform.localPositionZ
            }, 200)
        }
        startAction() {
            this.isAction = !0,
            this.Luk.active &amp;&amp; (this.showArrow(),
            this.doHandAction(0),
            this.changeAnim(c.MinimalAim))
        }
        doAction() {
            if (this.Luk.active) {
                let e = Math.min(.9, u.power / 100);
                this.Anim.speed = 1,
                this.Anim.play(c.MinToMax, 0, e),
                Laya.timer.once(1, this, ()=&gt;{
                    this.Anim.speed = 0
                }
                ),
                this.doHandAction(e)
            }
        }
        stopAction(e) {
            this.isAction = !1,
            this.Anim.speed = 1,
            this.Luk.active ? this.shootArrow(e) : this.Pushka.active &amp;&amp; this.shootBomb(e)
        }
        doHandAction(e) {
            for (let t = 0; t &lt; this.Luk.numChildren; ++t) {
                let i = this.Luk.getChildAt(t)
                  , s = this.rotMinMap.get(i.id);
                1 == this.level ? i.transform.localPositionY = s + .5 * e : i.transform.localPositionX = s - .5 * e
            }
        }
        shootBomb(e) {
            let t = F.getSprite3D(F.Bomb);
            u.levelObj.addChild(t),
            t.addComponent(te).init(this.Pushka.transform.position, e),
            u.arrows.push(t),
            m.event(d.DO_BOMB),
            0 == u.allRole.indexOf(this.obj) &amp;&amp; (u.followTar = t,
            j.instance.moveToEnemy())
        }
        changeBomb() {
            this.Luk.active = !this.Luk.active,
            this.Pushka.active = !this.Pushka.active,
            this.Luk.active ? this.initIdleAnim() : this.changeAnim(c.CannonIdle)
        }
        onLateUpdate() {
            this.isAction &amp;&amp; (this.CATRigSpine1.transform.localRotationEulerY = .8 * this.CATRigSpine1.transform.localRotationEulerY + .2 * u.angle)
        }
        onDestroy() {
            this.Anim.speed = 0,
            this.clearEvent(),
            Laya.timer.clearAll(this),
            Laya.Tween.clearAll(this.transform),
            u.roleNum -= this.arrowNum,
            m.event(d.UPDATE_NUM);
            let e = u.allRole.indexOf(this.obj);
            u.allRole.splice(e, 1)
        }
    }
    class se extends z {
        constructor() {
            super(),
            this.dotTime = .12,
            this.canDown = !0,
            this.canShoot = !0,
            this.trueV4 = new Laya.Vector4(10 / 255,1,48 / 255,1),
            this.falseV4 = new Laya.Vector4(.2,.2,.2,1),
            this.isBoom = !1
        }
        onStart() {
            this.obj = this.owner,
            u.player = this.obj;
            let e = this.obj.getChildAt(0)
              , t = e.getChildByName("ShootPoint");
            u.dotPoint = t.transform.position,
            this.Cells = e.getChildByName("Cells"),
            this.cellMat = this.Cells.getChildAt(0).meshRenderer.material,
            this.Points = e.getChildByName("Points"),
            this.Contains = e.getChildByName("Contains"),
            this.initArgs(),
            this.initRole(),
            this.initEvent(),
            this.changeSkin()
        }
        initArgs() {
            this.dotWhites = new Laya.Sprite3D("dotWhites"),
            this.dotGhosts = new Laya.Sprite3D("dotGhosts"),
            this.dotOutlines = new Laya.Sprite3D("dotOutlines"),
            this.obj.addChild(this.dotWhites),
            this.obj.addChild(this.dotGhosts),
            this.obj.addChild(this.dotOutlines),
            this.dotWhites.transform.position = new Laya.Vector3(0,0,0),
            this.dotGhosts.transform.position = new Laya.Vector3(0,0,0),
            this.dotOutlines.transform.position = new Laya.Vector3(0,0,0),
            this.dotWhites.active = !1,
            this.dotGhosts.active = !1,
            this.dotOutlines.active = !1,
            this.cellMat.albedoColorA = 0,
            this.mergePoint = new Laya.Vector2,
            this.shootPoint = new Laya.Vector2,
            this.moveSpeed = new Laya.Vector3,
            this.lastSpeed = new Laya.Vector3,
            this.MergeRange = new Laya.Vector4(-99,99,-99,99);
            for (let e = 0; e &lt; this.Points.numChildren; ++e) {
                let t = this.Points.getChildAt(e);
                this.MergeRange.x = Math.max(t.transform.localPositionX, this.MergeRange.x),
                this.MergeRange.y = Math.min(t.transform.localPositionX, this.MergeRange.y),
                this.MergeRange.z = Math.max(t.transform.localPositionZ, this.MergeRange.z),
                this.MergeRange.w = Math.min(t.transform.localPositionZ, this.MergeRange.w)
            }
            this._ray = new Laya.Ray(new Laya.Vector3(0,0,0),new Laya.Vector3(0,0,0)),
            this._outHitInfo = new Laya.HitResult,
            this.camera = u.camera,
            this.scene3d = $.instance.scene3d,
            this.needDestroyItems = [];
            for (let e = 0; e &lt; 4; ++e) {
                let e = F.getSprite3D(F.DotWhite);
                this.dotWhites.addChild(e)
            }
            for (let e = 0; e &lt; 10; ++e) {
                let e = F.getSprite3D(F.DotGhost);
                this.dotGhosts.addChild(e)
            }
            for (let e = 0; e &lt; 4; ++e) {
                let e = F.getSprite3D(F.DotOutline);
                this.dotOutlines.addChild(e)
            }
            this.roleItemMap = new Map,
            this.rolePointMap = new Map
        }
        initFlag() {}
        initRole() {
            let e = s.RolePosData;
            for (let t in e)
                0 != e[t] &amp;&amp; this.addRole(Number(t), e[t])
        }
        initEvent() {
            Laya.stage.on(Laya.Event.MOUSE_DOWN, this, this.mouseDown),
            Laya.stage.on(Laya.Event.MOUSE_MOVE, this, this.mouseMove),
            Laya.stage.on(Laya.Event.MOUSE_UP, this, this.mouseUp),
            m.on(d.SKINCHANGE, this, this.changeSkin),
            m.on(d.BUY_ROLE, this, this.addRole),
            m.on(d.CAN_SHOOT, this, this.shootReady),
            m.on(d.SHOW_HAND, this, this.showHand),
            m.on(d.CHANGE_BOMB, this, this.changeBomb)
        }
        clearEvent() {
            Laya.stage.off(Laya.Event.MOUSE_DOWN, this, this.mouseDown),
            Laya.stage.off(Laya.Event.MOUSE_MOVE, this, this.mouseMove),
            Laya.stage.off(Laya.Event.MOUSE_UP, this, this.mouseUp),
            m.off(d.SKINCHANGE, this, this.changeSkin),
            m.off(d.BUY_ROLE, this, this.addRole),
            m.off(d.CAN_SHOOT, this, this.shootReady),
            m.off(d.SHOW_HAND, this, this.showHand),
            m.off(d.CHANGE_BOMB, this, this.changeBomb)
        }
        changeSkin() {
            let e = this.obj.getChildAt(1)
              , t = s.skinTryCount &gt; 0 ? u.trySkinIndex : s.skinIndex;
            for (let i = 0; i &lt; e.numChildren; ++i) {
                e.getChildAt(i).active = t == i
            }
        }
        addRole(e, t=1) {
            let i = !1;
            e || 0 == e || (i = !0,
            e = this.emptyIndex);
            let n = this.Points.getChildAt(e)
              , a = F.getMan(t);
            this.Contains.addChild(a);
            let o = a.addComponent(ie);
            o.init(n, t, i),
            !this.roleItemMap.has(a.id) &amp;&amp; this.roleItemMap.set(a.id, o),
            !this.rolePointMap.has(a.id) &amp;&amp; this.rolePointMap.set(a.id, n);
            let l = s.RolePosData;
            l[e] = t,
            s.RolePosData = l,
            i &amp;&amp; 2 == s.showGuide &amp;&amp; (s.showGuide++,
            this.showHand()),
            u.isFull = this.rolePointMap.size == this.Points.numChildren,
            m.event(d.UPDATE_BUTTON)
        }
        get emptyIndex() {
            let e = [];
            this.rolePointMap.forEach(t=&gt;{
                e.push(t)
            }
            );
            for (let t = 0; t &lt; this.Points.numChildren; ++t) {
                let i = this.Points.getChildAt(t);
                if (e.indexOf(i) &lt; 0)
                    return t
            }
        }
        shootReady() {
            this.canShoot = !0,
            u.canChange = !0,
            this.isBoom = !1,
            this.showDot(this.dotGhosts, this.lastSpeed)
        }
        showHand() {
            let e = this.Contains.getChildAt(0)
              , t = this.Contains.getChildAt(1)
              , i = e.transform.position.clone();
            i.y += 2;
            let s = t.transform.position.clone();
            s.y += 2;
            let n = new Laya.Vector4
              , a = new Laya.Vector4;
            this.camera.worldToViewportPoint(i, n),
            this.camera.worldToViewportPoint(s, a),
            this.hand = new Laya.Image("res/gui/main/play/shou.png"),
            $.instance.scene2d.addChild(this.hand),
            this.hand.pos(n.x * Laya.stage.clientScaleX, n.y);
            let o = ()=&gt;{
                Laya.Tween.to(this.hand, {
                    x: a.x * Laya.stage.clientScaleX,
                    y: a.y
                }, 500, null, Laya.Handler.create(this, ()=&gt;{
                    Laya.Tween.to(this.hand, {
                        x: n.x * Laya.stage.clientScaleX,
                        y: n.y
                    }, 500, null, Laya.Handler.create(this, o))
                }
                ))
            }
            ;
            o()
        }
        doLevelUp() {
            let e = this.needDestroyItems[0].level + 1
              , t = this.needDestroyItems.length;
            for (let e = 0; e &lt; t; ++e) {
                let e = this.needDestroyItems.pop().owner;
                this.roleItemMap.delete(e.id),
                this.rolePointMap.delete(e.id),
                e.destroy()
            }
            this.addRole(this.tempPoint.parent.getChildIndex(this.tempPoint), e),
            X.instance.createEffect("SmokeFx", F.SmokeFx, this.tempPoint.transform.position, 1500),
            s.showGuide &gt; 1 &amp;&amp; (Laya.Tween.clearAll(this.hand),
            this.hand.removeSelf(),
            m.event(d.STOP_GUIDE)),
            L.instance.joinVoice()
        }
        changeBomb() {
            this.isBoom = !this.isBoom
        }
        mouseDown(t) {
            if (this.canShoot)
                if (e.isGameStart) {
                    if (u.isBombGuide)
                        return;
                    if (!this.isBoom &amp;&amp; L.instance.pullSound(),
                    this.shootPoint = new Laya.Vector2(t.stageX,t.stageY),
                    this.startAction(),
                    m.event(d.HIDE_GUIDE),
                    s.showGuide) {
                        let e = Math.cos(Math.PI / 180 * 22.5) * (80 + u.basicPower) / u.divNum
                          , t = Math.sin(Math.PI / 180 * 22.5) * (80 + u.basicPower) / u.divNum;
                        this.showDot(this.dotOutlines, new Laya.Vector3(e,t,0))
                    }
                } else {
                    if (1 == s.levelIndex)
                        return;
                    this.mergePoint = new Laya.Vector2(t.stageX,t.stageY),
                    this.doRay(new Laya.Vector2(t.stageX * Laya.stage.clientScaleX,t.stageY * Laya.stage.clientScaleY))
                }
        }
        mouseMove(t) {
            if (this.canShoot)
                if (e.isGameStart) {
                    if (u.isBombGuide)
                        return;
                    let e = t.stageX - this.shootPoint.x
                      , i = t.stageY - this.shootPoint.y;
                    u.angle = Math.round(180 * Math.atan2(e, i) / Math.PI),
                    u.angle = Math.max(Math.min(e &gt;= 0 ? 90 - u.angle : 90 + u.angle, 60), -60),
                    u.power = Math.round(Math.abs(e) / 2),
                    u.power = Math.max(Math.min(u.power, 80 + u.basicPower), u.basicPower),
                    this.doAction()
                } else {
                    if (1 == s.levelIndex)
                        return;
                    this.selectRole &amp;&amp; this.moveRole(this.mergePoint.x - t.stageX, this.mergePoint.y - t.stageY),
                    this.mergePoint = new Laya.Vector2(t.stageX,t.stageY)
                }
        }
        mouseUp() {
            if (this.canShoot)
                if (e.isGameStart) {
                    if (u.isBombGuide)
                        return;
                    this.stopAction()
                } else
                    this.downRole()
        }
        startAction() {
            u.angle = 0,
            u.power = u.basicPower,
            this.moveSpeed = this.V3ZERO,
            this.countSpeed(),
            m.event(d.START_ACTION)
        }
        doAction() {
            this.countSpeed(),
            m.event(d.DO_ACTION)
        }
        stopAction() {
            this.canShoot = !1,
            this.dotWhites.active = !1,
            this.dotGhosts.active = !1,
            this.dotOutlines.active = !1,
            this.lastSpeed = this.moveSpeed,
            u.canChange = !1,
            L.instance.stopPull(),
            m.event(d.STOP_ACTION, this.moveSpeed)
        }
        countSpeed() {
            this.moveSpeed.x = Math.cos(Math.PI / 180 * u.angle) * u.power / u.divNum,
            this.moveSpeed.y = Math.sin(Math.PI / 180 * u.angle) * u.power / u.divNum,
            this.showDot(this.dotWhites, this.moveSpeed),
            s.showGuide &amp;&amp; this.changeOutlineColor()
        }
        showDot(e, t) {
            let i = 0
              , s = u.dotPoint;
            for (let n = 0; n &lt; e.numChildren; ++n) {
                i += this.dotTime;
                let a = u.gravity * i
                  , o = new Laya.Vector3(t.x,t.y + a,0)
                  , l = e.getChildAt(n);
                s = new Laya.Vector3(s.x - o.x * this.dotTime,s.y + o.y * this.dotTime,s.z),
                l.transform.position = s
            }
            e.active = !0
        }
        changeOutlineColor() {
            let e = u.angle &gt;= 20 &amp;&amp; u.angle &lt;= 25 &amp;&amp; u.power &gt;= 80 + u.basicPower - 1;
            for (let t = 0; t &lt; this.dotOutlines.numChildren; ++t) {
                this.dotOutlines.getChildAt(t).meshRenderer.material.albedoColor = e ? this.trueV4 : this.falseV4
            }
        }
        doRay(e) {
            if (this.camera.viewportPointToRay(e, this._ray),
            this.scene3d.physicsSimulation.rayCast(this._ray, this._outHitInfo),
            this._outHitInfo.succeeded) {
                let e = this._outHitInfo.collider.owner;
                if (e.name.indexOf("Man") &gt;= 0) {
                    let t = this.roleItemMap.get(e.id);
                    t &amp;&amp; this.needDestroyItems.indexOf(t) &lt; 0 &amp;&amp; (t.doTake(),
                    this.showCell(e))
                }
            }
        }
        showCell(e) {
            this.canDown = !0,
            this.selectRole = e,
            this.cellMat.albedoColor = new Laya.Vector4(0,1,0,0),
            this.tempPoint = this.rolePointMap.get(e.id),
            this.Cells.transform.localPositionX = this.tempPoint.transform.localPositionX,
            this.Cells.transform.localPositionZ = this.tempPoint.transform.localPositionZ,
            Laya.Tween.clearAll(this.cellMat),
            Laya.Tween.to(this.cellMat, {
                albedoColorA: 1
            }, 400)
        }
        moveRole(e, t) {
            this.selectRole.transform.localPositionX -= t / 100,
            this.selectRole.transform.localPositionZ += e / 100,
            this.selectRole.transform.localPositionX &gt; this.MergeRange.x &amp;&amp; (this.selectRole.transform.localPositionX = this.MergeRange.x),
            this.selectRole.transform.localPositionX &lt; this.MergeRange.y &amp;&amp; (this.selectRole.transform.localPositionX = this.MergeRange.y),
            this.selectRole.transform.localPositionZ &gt; this.MergeRange.z &amp;&amp; (this.selectRole.transform.localPositionZ = this.MergeRange.z),
            this.selectRole.transform.localPositionZ &lt; this.MergeRange.w &amp;&amp; (this.selectRole.transform.localPositionZ = this.MergeRange.w);
            let i = this.MinNode;
            i != this.tempPoint &amp;&amp; (this.tempPoint = i,
            this.checkDown(i),
            Laya.Tween.clearAll(this.Cells.transform),
            Laya.Tween.to(this.Cells.transform, {
                localPositionX: i.transform.localPositionX,
                localPositionZ: i.transform.localPositionZ
            }, 200))
        }
        get MinNode() {
            let e, t = 1 / 0;
            for (let i = 0; i &lt; this.Points.numChildren; ++i) {
                let s = this.Points.getChildAt(i)
                  , n = this.selectRole.transform.position.x - s.transform.position.x
                  , a = this.selectRole.transform.position.z - s.transform.position.z
                  , o = Math.sqrt(n * n + a * a);
                o &lt; t &amp;&amp; (t = o,
                e = s)
            }
            return e
        }
        checkDown(e) {
            this.canDown = !0,
            this.cellMat.albedoColor = new Laya.Vector4(0,1,0,1);
            let t = this.roleItemMap.get(this.selectRole.id);
            for (let i of this.rolePointMap) {
                if (i[1] != e)
                    continue;
                let s = this.roleItemMap.get(i[0]);
                this.canDown = t.level &lt; 8 &amp;&amp; t.level == s.level,
                this.cellMat.albedoColor = this.canDown ? new Laya.Vector4(0,1,0,1) : new Laya.Vector4(1,0,0,1);
                break
            }
        }
        downRole() {
            if (1 == s.levelIndex)
                return;
            if (!this.selectRole || !this.selectRole.name.includes("Man"))
                return;
            let e = this.roleItemMap.get(this.selectRole.id);
            if (this.canDown) {
                let t = this.rolePointMap.get(this.selectRole.id);
                if (this.tempPoint != t) {
                    e.tarPoint = this.tempPoint,
                    this.rolePointMap.set(this.selectRole.id, this.tempPoint);
                    let i = s.RolePosData;
                    i[t.parent.getChildIndex(t)] = 0;
                    let n = this.pointRoleID;
                    n ? (this.needDestroyItems.push(this.roleItemMap.get(n)),
                    this.needDestroyItems.push(e)) : i[this.tempPoint.parent.getChildIndex(this.tempPoint)] = e.level,
                    s.RolePosData = i
                }
            }
            this.hideCell(),
            e.doTakeOff(),
            this.needDestroyItems.length &gt; 0 &amp;&amp; Laya.timer.once(200, this, this.doLevelUp)
        }
        get pointRoleID() {
            for (let e of this.rolePointMap)
                if (this.selectRole.id != e[0] &amp;&amp; this.tempPoint == e[1])
                    return e[0]
        }
        hideCell() {
            this.selectRole = null,
            Laya.Tween.clearAll(this.cellMat),
            Laya.Tween.to(this.cellMat, {
                albedoColorA: 0
            }, 400)
        }
        onDestroy() {
            this.clearEvent()
        }
    }
    class ne extends z {
        constructor() {
            super()
        }
        onStart() {
            this.obj = this.owner,
            this.Layer = this.obj.getChildAt(0),
            m.on(d.BOMB_ACTION, this, this.doAction)
        }
        doAction() {
            let e = this.Layer.getComponent(Laya.PhysicsCollider);
            e &amp;&amp; (e.enabled = !1);
            for (let e = 0; e &lt; this.Layer.numChildren; ++e) {
                let t = this.Layer.getChildAt(e)
                  , i = new Laya.Vector3;
                Laya.Vector3.subtract(t.transform.position, this.position, i),
                Laya.Vector3.scale(i, 5, i);
                let s = t.transform.position.clone();
                Laya.Tween.to(t.transform, {
                    localRotationEulerX: t.transform.localRotationEulerX + 90 * Math.random() - 180,
                    localRotationEulerY: t.transform.localRotationEulerY + 90 * Math.random() - 180,
                    localRotationEulerZ: t.transform.localRotationEulerZ + 90 * Math.random() - 180
                }, 500);
                let n = new Laya.Vector3(s.x + i.x / 5,s.y + i.y / 2,s.z + i.z / 2)
                  , a = Laya.Vector3.distance(n, t.transform.position);
                Laya.Tween.to(s, {
                    x: n.x,
                    y: n.y,
                    z: n.z,
                    update: new Laya.Handler(this,()=&gt;{
                        t.transform.position = s
                    }
                    )
                }, 50 * a, null, Laya.Handler.create(this, ()=&gt;{
                    Laya.Tween.to(t.transform, {
                        localRotationEulerX: t.transform.localRotationEulerX + 90 * Math.random() - 180,
                        localRotationEulerY: t.transform.localRotationEulerY + 90 * Math.random() - 180,
                        localRotationEulerZ: t.transform.localRotationEulerZ + 90 * Math.random() - 180
                    }, 1e3);
                    let e = new Laya.Vector3(s.x + i.x / 2,0,s.z + i.z / 2)
                      , n = Laya.Vector3.distance(e, t.transform.position);
                    Laya.Tween.to(s, {
                        x: e.x,
                        y: e.y,
                        z: e.z,
                        update: new Laya.Handler(this,()=&gt;{
                            t.transform.position = s
                        }
                        )
                    }, 50 * n, Laya.Ease.cubicIn, Laya.Handler.create(this, ()=&gt;{
                        t.removeSelf()
                    }
                    ))
                }
                ))
            }
        }
        onDestroy() {
            m.off(d.BOMB_ACTION, this, this.doAction)
        }
    }
    class ae {
        static get instance() {
            return this._instance ? this._instance : this._instance = new ae
        }
        init() {
            this.objPool = new Laya.Sprite3D("Level"),
            $.instance.scene3d.addChild(this.objPool),
            m.on(d.DO_DEATH, this, this.doDeath)
        }
        async load() {
            this.obj = new Laya.Sprite3D("obj"),
            this.objPool.addChild(this.obj),
            this.obj.transform.position = new Laya.Vector3(0,0,0),
            this.initData();
            let e = s.reallyLevelIndex
              , t = `${F.JSON_PATH}Level${e}.json`
              , i = await D.getGameLevelJson(t);
            this.addNode(i["Level" + e]);
            let n = F.getSprite3D(F.Background);
            this.obj.addChild(n),
            j.instance.reset(),
            o.gameTimes &lt;= 0 &amp;&amp; (S.instance.openMainScene(!1, !0),
            S.instance.closeLoadScene())
        }
        initData() {
            u.levelObj = this.obj,
            u.roleNum = 0,
            u.enemyNum = 0,
            u.enemyDeathNum = 0,
            u.allEnemyNum = 0,
            u.getMoney = 50 * (s.reallyLevelIndex + Math.floor(s.reallyLevelIndex / 5)),
            u.divNum = u.PlayerDivData[s.reallyLevelIndex - 1],
            u.isBombGuide = 5 == s.levelIndex,
            u.isBomb = 5 != s.levelIndex,
            u.isCol = 5 != s.levelIndex,
            u.isFull = !1,
            u.isEnemyShoot = !1,
            u.canChange = !0,
            u.canMove = !0,
            u.allRole = [],
            u.allEnemy = [],
            u.desArrs = []
        }
        async addNode(e) {
            for (let t of e) {
                let e = null
                  , i = null;
                if (t.name.indexOf("Player") &gt;= 0)
                    e = F.getSprite3D(F.Player),
                    i = se,
                    u.playerTar = new Laya.Vector3(t.x,t.y,t.z);
                else if (t.name.indexOf("Enemie") &gt;= 0)
                    u.enemyTar = new Laya.Vector3(t.x,t.y,t.z);
                else if (t.name.indexOf("Man1") &gt;= 0)
                    e = F.getSprite3D(F.Man1),
                    i = Q;
                else if (t.name.indexOf("Man2") &gt;= 0)
                    e = F.getSprite3D(F.Man2),
                    i = Q;
                else if (t.name.indexOf("Man3") &gt;= 0)
                    e = F.getSprite3D(F.Man3),
                    i = Q;
                else if (t.name.indexOf("Man4") &gt;= 0)
                    e = F.getSprite3D(F.Man4),
                    i = Q;
                else if (t.name.indexOf("Man5") &gt;= 0)
                    e = F.getSprite3D(F.Man5),
                    i = Q;
                else if (t.name.indexOf("Man6") &gt;= 0)
                    e = F.getSprite3D(F.Man6),
                    i = Q;
                else if (t.name.indexOf("Man7") &gt;= 0)
                    e = F.getSprite3D(F.Man7),
                    i = Q;
                else if (t.name.indexOf("Man8") &gt;= 0)
                    e = F.getSprite3D(F.Man8),
                    i = Q;
                else if (t.name.indexOf("Man9") &gt;= 0)
                    e = F.getSprite3D(F.Man9),
                    i = Q;
                else if (t.name.indexOf("ManBalloon") &gt;= 0)
                    e = F.getSprite3D(F.ManBalloon),
                    i = ee;
                else if (t.name.indexOf("Mesh1") &gt;= 0)
                    e = F.getSprite3D(F.Mesh1);
                else if (t.name.indexOf("Tower1") &gt;= 0)
                    e = F.getSprite3D(F.Tower1);
                else if (t.name.indexOf("Tower2") &gt;= 0)
                    e = F.getSprite3D(F.Tower2);
                else if (t.name.indexOf("Tower3") &gt;= 0)
                    e = F.getSprite3D(F.Tower3);
                else if (t.name.indexOf("Tower6") &gt;= 0)
                    e = F.getSprite3D(F.Tower6);
                else if (t.name.indexOf("Tower7") &gt;= 0)
                    e = F.getSprite3D(F.Tower7);
                else if (t.name.indexOf("Grass1") &gt;= 0)
                    e = F.getSprite3D(F.Grass1);
                else if (t.name.indexOf("Grass3") &gt;= 0)
                    e = F.getSprite3D(F.Grass3);
                else if (t.name.indexOf("Cube") &gt;= 0)
                    e = F.getSprite3D(F.Cube);
                else {
                    if (t.name.indexOf("Key") &gt;= 0)
                        continue;
                    t.name.indexOf("WallBuilding") &gt;= 0 ? (e = F.getSprite3D(F.WallBuilding),
                    i = ne) : t.name.indexOf("Pit1") &gt;= 0 ? e = F.getSprite3D(F.Pit1) : t.name.indexOf("Pit2") &gt;= 0 ? e = F.getSprite3D(F.Pit2) : t.name.indexOf("Box053") &gt;= 0 ? e = F.getSprite3D(F.Box053) : t.name.indexOf("Balkon") &gt;= 0 &amp;&amp; (e = F.getSprite3D(F.Balkon))
                }
                e &amp;&amp; (this.obj.addChild(e),
                e.name = t.name,
                e.transform.position = new Laya.Vector3(t.x,t.y,t.z),
                e.transform.rotation = new Laya.Quaternion(t.rotX,t.rotY,t.rotZ,t.rotW),
                e.transform.localScale = new Laya.Vector3(t.scaleX,t.scaleY,t.scaleZ),
                i &amp;&amp; e.addComponent(i))
            }
        }
        ready() {}
        doDeath(e, t=!1) {
            if (u.allRole.includes(e)) {
                let i = e.getComponent(ie);
                i &amp;&amp; (t ? i.doDeath() : i.checkDeath())
            } else if (u.allEnemy.includes(e)) {
                let i = e.getComponent(Q);
                i &amp;&amp; (t ? i.doDeath() : i.checkDeath()),
                L.instance.hitSound()
            }
            J.instance.vibrateShort()
        }
        clearOthers() {
            this.obj &amp;&amp; (this.obj.removeSelf(),
            this.obj.destroy(),
            this.obj = null)
        }
    }
    class oe {
        constructor() {
            this.isOver = !1
        }
        static get instance() {
            return this._instance ? this._instance : this._instance = new oe
        }
        init() {
            $.instance.init(),
            j.instance.init(),
            ae.instance.init(),
            X.instance.init(),
            this.sceneObjLoadFinish(),
            this.addEventListener()
        }
        sceneObjLoadFinish() {
            this.clearGame()
        }
        clearGame() {
            ae.instance.clearOthers(),
            X.instance.clearAllEffect(),
            this.load()
        }
        load() {
            ae.instance.load(),
            this.reset()
        }
        reset() {
            L.instance.playMusic()
        }
        readyGame() {
            ae.instance.ready(),
            j.instance.ready(),
            S.instance.openPlayScene(!1),
            Laya.timer.once(500, this, this.startGame)
        }
        startGame() {
            this.isOver = !1,
            e.isGameStart = !0,
            j.instance.start(),
            w.instance.startRecorder()
        }
        gameLose() {
            this.isOver ? console.log("å†æ¬¡è¿›å…¥æ¸¸æˆç»“æŸåˆ¤å®š1") : (this.doGameOver(),
            L.instance.LoseVoice(),
            Laya.timer.once(1500, this, ()=&gt;{
                Laya.Scene.open(g.FailScene, !1)
            }
            ))
        }
        gameWin() {
            this.isOver ? console.log("å†æ¬¡è¿›å…¥æ¸¸æˆç»“æŸåˆ¤å®š2") : (this.doGameOver(),
            L.instance.win_sound(),
            Laya.timer.once(2e3, this, ()=&gt;{
                Laya.Scene.open(g.WinScene, !1)
            }
            ))
        }
        doGameOver() {
            this.isOver = !0,
            L.instance.stopMusic(),
            o.gameTimes++,
            e.isGameStart = !1,
            w.instance.stopRecorder(),
            m.event(d.GAMEOVER),
            S.instance.closePlayScene(),
            s.skinTryCount &gt; 0 &amp;&amp; s.skinTryCount--
        }
        addEventListener() {
            m.on(d.GAMESTART, this, this.startGame),
            m.on(d.GAMEREADY, this, this.readyGame),
            m.on(d.RESETGAME, this, this.clearGame),
            m.on(d.GAMELOSE, this, this.gameLose),
            m.on(d.GAMEWIN, this, this.gameWin)
        }
    }
    class re {
        constructor() {
            this._version = null,
            this._browser = null,
            this.flowConfig = {}
        }
        static get instance() {
            return this._instance ? this._instance : this._instance = new re
        }
        init() {
            try {
                i.getIsMini() &amp;&amp; (this._browser = i.getBrowser(),
                this._browser.tmSDK.init({
                    hideRequestLog: !1,
                    appVersion: "1.0.0"
                }))
            } catch (e) {
                a.log("åˆå§‹:" + e)
            }
        }
        login(e, t) {}
        checkFlowIsOpen(e, t, i) {}
        getFlowConfig(e, t, i, s=!0) {
            let n = this;
            if (n.flowConfig[e]) {
                if (i &amp;&amp; t)
                    if (s) {
                        let s = n.flowConfig[e].creatives;
                        s ? (s = JSON.parse(JSON.stringify(s)),
                        i.apply(t, [s])) : i.apply(t, [null])
                    } else
                        i.apply(t, [n.flowConfig[e]])
            } else
                try {
                    this._browser.tmSDK.getFlowConfig({
                        positionId: e
                    }).then(a=&gt;{
                        if (n.flowConfig[e] = a,
                        i &amp;&amp; t)
                            if (s) {
                                let s = n.flowConfig[e].creatives;
                                s ? (s = JSON.parse(JSON.stringify(s)),
                                i.apply(t, [s])) : i.apply(t, [null])
                            } else
                                i.apply(t, [n.flowConfig[e]])
                    }
                    )
                } catch (e) {
                    a.log(e)
                }
        }
        flowNavigate(e, t, i="") {
            try {
                this._browser.tmSDK.flowNavigate({
                    positionId: e,
                    creativeId: t
                }).then(t=&gt;{
                    this.flowConfig[e] = t,
                    "navigateToMiniProgram:fail cancel" == t.navigateMessage.errMsg ? m.event(d.USERCANCEL) : "navigateToMiniProgram:ok" == t.navigateMessage.errMsg &amp;&amp; m.event(d.USERJUMP)
                }
                ).catch(e=&gt;{
                    a.log("è·³è½¬å¤±è´¥", e)
                }
                )
            } catch (e) {}
        }
    }
    class he extends R.scenes.mainscenes.LoadSceneUI {
        constructor() {
            super(),
            this._isShowBorW = !0,
            this.nowtime = 0,
            this.subNames = ["u3d", "mp3"],
            this.subIndex = 0
        }
        onEnable() {
            this.zOrder = 3500
        }
        onOpened() {
            this.nowtime = Date.now(),
            this.initView(),
            this.initload()
        }
        initView() {
            this._viewA.visible = !0,
            this._viewB.visible = !1,
            this._isShowBorW = !0,
            Laya.Browser.onQGMiniGame &amp;&amp; (this._txt1.visible = !0,
            this._txt3.visible = !0,
            this._img1.visible = !0)
        }
        initload() {
            i.getIsMini() ? Laya.Browser.onMiniGame ? (o.islinshiWhite &amp;&amp; (this._listDown.selectEnable = !0,
            this._listDown.selectHandler = new Laya.Handler(this,this.selectDown),
            re.instance.getFlowConfig(n.wxId, this, this.loadAd),
            this.regClick(this._imgStart, this.intoMain)),
            this.loadSubpackagesWX("3D", 0, 1)) : Laya.Browser.onQGMiniGame ? this.loadSubpackagesQG("3D", 0, .7) : Laya.Browser.onVVMiniGame ? this.loadSubpackagesQG("3D", 0, .7) : Laya.Browser.onTTMiniGame &amp;&amp; this.loadSubpackagesTT() : this.resLoad(0, 1)
        }
        loadAd(e) {
            this._listDown.array = e
        }
        selectDown(e) {
            let t = this._listDown.array[e];
            t &amp;&amp; (re.instance.flowNavigate(t.positionId, t.creativeId),
            this._listDown.selectedIndex = -1)
        }
        intoMain() {
            S.instance.closeLoadScene(),
            S.instance.openMainScene(!1)
        }
        resLoad(e, t) {
            let i = this;
            W.instance.preloadResPkg(F.resUrl, e=&gt;{
                a.log(e),
                i.changeProg(e)
            }
            , ()=&gt;{
                i.addMainScene()
            }
            )
        }
        resWxLoad(t, i) {
            if (!Laya.Browser.onMiniGame)
                return;
            let s = this
              , n = Laya.Browser.window.wx;
            e.ZIP_BASE_URL = n.env.USER_DATA_PATH + "/",
            n.getFileSystemManager().unzip({
                zipFilePath: "/3D/3D.zip",
                targetPath: e.ZIP_BASE_URL,
                success: e=&gt;{
                    s.resLoad(t, i)
                }
                ,
                fail: e=&gt;{
                    a.error("onZipDownloaded unzip failed " + e.errMsg)
                }
                ,
                complete: ()=&gt;{}
            })
        }
        addMainScene() {
            if (console.log("åˆå§‹åŒ–"),
            oe.instance.init(),
            i.getIsMini()) {
                let e = i.getBrowser();
                e.onHide(e=&gt;{
                    L.instance.stopMusic()
                }
                ),
                e.onShow(e=&gt;{
                    L.instance.playMusic()
                }
                )
            }
        }
        loadSubpackagesWX(e, t, s) {
            let n = this;
            const o = i.getBrowser();
            o.setPreferredFramesPerSecond(60),
            o.showShareMenu({
                withShareTicket: !0
            });
            o.loadSubpackage({
                name: e,
                success: ()=&gt;{
                    a.log("å­åŒ…åŠ&nbsp;è½½æˆåŠŸ"),
                    n.resLoad(t, s)
                }
                ,
                fail: e=&gt;{
                    a.log("åˆ†åŒ…åŠ&nbsp;è½½å¤±è´¥", e)
                }
            })
        }
        loadSubpackagesQG(e, t, s) {
            let n = this;
            i.getBrowser().loadSubpackage({
                name: "u3d",
                success: ()=&gt;{
                    a.log("å­åŒ…åŠ&nbsp;è½½æˆåŠŸ"),
                    n.resLoad(.7, 1)
                }
                ,
                fail: e=&gt;{
                    a.log("åˆ†åŒ…åŠ&nbsp;è½½å¤±è´¥", e)
                }
            })
        }
        loadSubpackagesTT() {
            let e = this;
            i.getBrowser().loadSubpackage({
                name: this.subNames[this.subIndex],
                success: ()=&gt;{
                    this.subIndex++,
                    this.subIndex &gt;= this.subNames.length ? e.resLoad(.1, 1) : e.loadSubpackagesTT()
                }
                ,
                fail: e=&gt;{
                    a.log("åˆ†åŒ…åŠ&nbsp;è½½å¤±è´¥", e)
                }
            }).onProgressUpdate(t=&gt;{
                e.changeProg(0 + .1 * t.progress / 100)
            }
            )
        }
        resTTLoad(t, i) {
            let s = this
              , n = Laya.Browser.window.tt;
            e.ZIP_BASE_URL = n.env.USER_DATA_PATH + "/";
            let a = `${e.ZIP_BASE_URL}res/u3d`;
            n.getFileSystemManager().unzip({
                zipFilePath: "res/u3d/level.zip",
                targetPath: a,
                success: e=&gt;{
                    s.resLoad(t, i)
                }
                ,
                fail: e=&gt;{
                    console.error("onZipDownloaded unzip failed " + e.errMsg)
                }
            })
        }
        changeProg(e) {
            this._isShowBorW ? this._bar1.x = 511 * e - 511 : this._bar2.x = 511 * e - 511
        }
        onClosed() {
            console.log(Date.now() - this.nowtime)
        }
    }
    class ce extends Laya.Box {
        constructor() {
            super(),
            this._dataSource = null
        }
        get dataSource() {
            return this._dataSource
        }
        set dataSource(e) {
            this._dataSource = e,
            this.refresh()
        }
        onEnable() {
            let e = Math.ceil(6 * Math.random());
            this._imgTitleBg = this.getChildAt(0).getChildByName("_imgTitleBg"),
            this._imgTitleBg.skin = ""
        }
        refresh() {
            let e = this;
            if (e.dataSource) {
                e._txtTitle = e.getChildAt(0).getChildByName("_txtTitle"),
                e._imgIcon = e.getChildAt(0).getChildByName("_imgIcon"),
                e._imgTitleBg = e.getChildAt(0).getChildByName("_imgTitleBg");
                let t = e.dataSource.show_config.image;
                e._txtTitle &amp;&amp; (e._txtTitle.text = i.shortText(e.dataSource.show_config.title),
                t &amp;&amp; (e._imgIcon.skin = t))
            }
        }
    }
    class de extends Laya.VScrollBar {
        constructor() {
            super(),
            this.toValue = this.max
        }
        onAwake() {
            this.value = 0,
            this.toValue = this.max,
            this.fatherObj = this.parent,
            this.fatherObj.on(Laya.Event.MOUSE_DOWN, this, this.stopChange),
            this.fatherObj.on(Laya.Event.MOUSE_OUT, this, this.stopChange),
            this.fatherObj.on(Laya.Event.MOUSE_UP, this, this.startChange),
            this.startChange()
        }
        startChange() {
            this.timer.clearAll(this),
            this.timer.once(600, this, ()=&gt;{
                this.road()
            }
            )
        }
        road() {
            let e = 20 * (0 == this.toValue ? this.value : this.toValue - this.value);
            Laya.Tween.to(this, {
                value: this.toValue
            }, e, null, Laya.Handler.create(this, ()=&gt;{
                this.toValue = 0 == this.toValue ? this.max : 0,
                this.road()
            }
            ))
        }
        stopChange() {
            Laya.Tween.clearAll(this)
        }
        onDisable() {
            this.fatherObj.off(Laya.Event.MOUSE_DOWN, this, this.stopChange),
            this.fatherObj.off(Laya.Event.MOUSE_OUT, this, this.stopChange),
            this.fatherObj.off(Laya.Event.MOUSE_UP, this, this.startChange)
        }
    }
    class me extends R.scenes.mainscenes.MainSceneUI {
        constructor() {
            super()
        }
        onEnable() {
            u.canShow = !0,
            this.isShow = !1,
            this._add.visible = e.isDebug,
            2 == s.levelIndex &amp;&amp; s.gold &lt; 30 &amp;&amp; (s.gold = 50),
            Laya.Browser.onQGMiniGame &amp;&amp; (this._setting.bottom = 565,
            this._skin.bottom = 565,
            this._sign.bottom = 815,
            this._turntable.bottom = 815,
            this._buyMoney.bottom = 695,
            this._buyVideo.bottom = 695,
            this._start.bottom = 565)
        }
        onOpened(e) {
            this.initEvent(),
            this.changeGold(),
            this.updateBuy(),
            this._lvText.text = "Level " + s.levelIndex,
            u.onMain = !0,
            this._shou.visible = !1,
            s.showGuide &gt; 1 ? (this._start.visible = !1,
            this._shou.visible = !0,
            this.ani1.play(0, !0)) : 1 == s.showGuide &amp;&amp; (this._buyVideo.visible = !1,
            this._buyMoney.visible = !1),
            3 == s.showGuide &amp;&amp; m.event(d.SHOW_HAND)
        }
        initEvent() {
            this.regClick(this._lastLevel, this.lastLevel),
            this.regClick(this._nextLevel, this.nextLevel),
            this.regClick(this._start, this.judgeMisTouch),
            this.regClick(this._skin, this.openSkin),
            this.regClick(this._setting, this.openSet),
            this.regClick(this._turntable, this.openTurn),
            this.regClick(this._sign, this.openSign),
            this.regClick(this._buyMoney, this.doBuyMoney),
            this.regClick(this._buyVideo, this.doBuyVideo),
            this.regClick(this._add, this.addMoney),
            m.on(d.GOLDCHANGE, this, this.changeGold),
            m.on(d.UPDATE_BUTTON, this, this.updateBuy),
            m.on(d.UPDATE_NUM, this, this.updateNumBox),
            m.on(d.STOP_GUIDE, this, this.stopGuide)
        }
        lastLevel() {
            s.levelIndex &gt; 1 &amp;&amp; (s.levelIndex--,
            m.event(d.RESETGAME))
        }
        nextLevel() {
            o.gameTimes++,
            s.levelIndex++,
            m.event(d.RESETGAME)
        }
        openSkin() {
            S.instance.closeMainScene(),
            S.instance.openSelectSkinScene(!1)
        }
        openSet() {
            S.instance.openSettingScene(!1),
            S.instance.closeMainScene()
        }
        openTurn() {
            S.instance.openTurnScene(!1, !1),
            S.instance.closeMainScene()
        }
        openSign() {
            S.instance.openSignScene(!1),
            S.instance.closeMainScene()
        }
        doBuyMoney() {
            let e = 30 + 30 * s.BuyTimes;
            s.gold -= e,
            this.changeGold(),
            s.BuyTimes++,
            m.event(d.BUY_ROLE),
            this._shou.visible = !1
        }
        doBuyVideo() {
            my.r(() =&gt;{
                //if (res) {
                    e &amp;&amp; (s.BuyTimes++,
                    m.event(d.BUY_ROLE))
                //}
            }
            )
        }
        addMoney() {
            s.gold += 2e3,
            m.event(d.GOLDCHANGE)
        }
        changeGold() {
            this._goldText.text = i.formatToUnitEN(s.gold)
        }
        updateBuy() {
            let e = 30 + 30 * s.BuyTimes;
            this._need.text = e + "Buy",
            this._buyMoney.visible = s.gold &gt;= e,
            this._buyVideo.visible = !this._buyMoney.visible,
            this._buyMoney.gray = u.isFull,
            this._buyVideo.gray = u.isFull,
            this._buyMoney.mouseEnabled = !u.isFull,
            this._buyVideo.mouseEnabled = !u.isFull,
            this.updateNumBox()
        }
        updateNumBox() {
            this._selfNum.text = "" + u.roleNum,
            this._enemyNum.text = "" + u.enemyNum
        }
        stopGuide() {
            s.showGuide = 0,
            this._start.visible = !0
        }
        gameStart() {
            this.isShow || (this.closeAdvert(),
            m.event(d.GAMEREADY),
            S.instance.closeMainScene())
        }
        judgeMisTouch() {
            this.gameStart()
        }
        closeAdvert() {}
        clearEvent() {
            m.off(d.GOLDCHANGE, this, this.changeGold),
            m.off(d.UPDATE_BUTTON, this, this.updateBuy),
            m.off(d.UPDATE_NUM, this, this.updateNumBox),
            m.off(d.STOP_GUIDE, this, this.stopGuide)
        }
        onClosed() {
            this.clearEvent(),
            u.onMain = !1,
            Laya.Tween.clearAll(this)
        }
    }
    class ue extends R.scenes.mainscenes.PlaySceneUI {
        constructor() {
            super(),
            this.shootTimes = 0,
            this.isBomb = !1
        }
        onOpened(e) {
            this.initPlayUI(),
            u.canShow = !0,
            this.addEvent()
        }
        initPlayUI() {
            this.updateNumBox(),
            this._lvText.text = String("Level " + s.levelIndex),
            s.levelIndex &gt;= 5 &amp;&amp; (this._bombBtn.visible = !0,
            5 == s.levelIndex ? (this._guideBox.visible = !1,
            this.showBombGuide(),
            this._bombBar.y = 0,
            this._bombBtn.mouseEnabled = !0) : (this._bombBar.y = 256,
            this._bombBtn.mouseEnabled = !1))
        }
        addEvent() {
            this.regClick(this._bombBtn, this.changeBomb),
            m.on(d.HIDE_GUIDE, this, this.hideGuide),
            m.on(d.START_ACTION, this, this.showPlayBox),
            m.on(d.DO_ACTION, this, this.showPlayBox),
            m.on(d.STOP_ACTION, this, this.hidePlayBox),
            m.on(d.UPDATE_NUM, this, this.updateNumBox),
            m.on(d.DO_BOMB, this, this.doBomb),
            s.levelIndex &gt; 5 &amp;&amp; m.on(d.CAN_SHOOT, this, this.updateBomb)
        }
        clearEvent() {
            m.off(d.HIDE_GUIDE, this, this.hideGuide),
            m.off(d.START_ACTION, this, this.showPlayBox),
            m.off(d.DO_ACTION, this, this.showPlayBox),
            m.off(d.STOP_ACTION, this, this.hidePlayBox),
            m.off(d.DO_BOMB, this, this.doBomb),
            s.levelIndex &gt; 5 &amp;&amp; m.off(d.CAN_SHOOT, this, this.updateBomb)
        }
        showBombGuide() {
            this.ani2.play(),
            this._bombHand.visible = !0,
            this._bombBox.visible = !0
        }
        changeBomb() {
            u.canChange &amp;&amp; (this.ani2.stop(),
            this.ani3.stop(),
            this._bombBox.visible = !1,
            this._bombHand.visible = !1,
            u.isBombGuide = !1,
            this.isBomb ? (this.isBomb = !1,
            this._bombBtn.getChildAt(0).skin = "res/gui/main/play/Button2.png") : (this.isBomb = !0,
            this._bombBtn.getChildAt(0).skin = "res/gui/main/play/Button3.png"),
            m.event(d.CHANGE_BOMB))
        }
        doBomb() {
            this.isBomb = !1,
            this._bombBtn.getChildAt(0).skin = "res/gui/main/play/Button2.png",
            5 != s.levelIndex &amp;&amp; (this._bombBar.y = 256,
            this._bombBtn.mouseEnabled = !1,
            this.shootTimes = 0)
        }
        hideGuide() {
            this.ani1.isPlaying &amp;&amp; (this._guideBox.visible = !1,
            this.ani1.stop())
        }
        showPlayBox() {
            this._playBox.visible = !0,
            this._angle.text = `${u.angle}Â°`,
            this._power.text = `${Math.min(u.power, 100)}%`
        }
        hidePlayBox() {
            this._playBox.visible = !1
        }
        updateNumBox() {
            this._selfNum.text = "" + u.roleNum,
            this._enemyNum.text = "" + u.enemyNum
        }
        updateBomb() {
            this.shootTimes &lt; 3 &amp;&amp; (this.shootTimes++,
            Laya.Tween.to(this._bombBar, {
                y: 256 - 256 * this.shootTimes / 3
            }, 200, null, Laya.Handler.create(this, ()=&gt;{
                this._bombBtn.mouseEnabled = 3 == this.shootTimes,
                3 == this.shootTimes &amp;&amp; this.ani3.play()
            }
            )))
        }
        gameOver() {
            Laya.timer.clearAll(this)
        }
        onClosed() {
            this.clearEvent()
        }
    }
    class ge {
        static get instance() {
            return this._instance ? this._instance : this._instance = new ge
        }
        createPlayer(e, t, i, s) {
            if (!this.player) {
                this.scene3d || (this.scene3d = new Laya.Scene3D),
                Laya.stage.getChildByName("root").addChild(this.scene3d),
                this.camera = new Laya.Camera,
                this.scene3d.addChild(this.camera),
                this.camera.transform.position = new Laya.Vector3(0,3.5,-5),
                this.camera.transform.localRotationEuler = new Laya.Vector3(-20,180,0),
                this.camera.clearFlag = Laya.CameraClearFlags.DepthOnly,
                this.camera.viewport = new Laya.Viewport(e * Laya.stage.clientScaleX,t * Laya.stage.clientScaleY,i * Laya.stage.clientScaleX,s * Laya.stage.clientScaleY),
                this.light = new Laya.DirectionLight,
                this.scene3d.addChild(this.light),
                this.light.transform.position = new Laya.Vector3(-9.281452,15.48453,-18.53672),
                this.light.transform.rotation = new Laya.Quaternion(.1093816,.8754261,.4082179,-.2345697),
                this.light.intensity = .41,
                this.scene3d.ambientColor = new Laya.Vector3(.7,.7,.7),
                this.player = u.player.getChildAt(1).clone(),
                this.scene3d.addChild(this.player),
                this.player.transform.localPosition = new Laya.Vector3(0,.3,0),
                this.player.transform.localRotationEuler = new Laya.Vector3(0,0,0),
                this.player.transform.localScale = new Laya.Vector3(1,1,1)
            }
            return this.player
        }
        clear() {
            this.camera &amp;&amp; (this.camera.removeSelf(),
            this.camera.destroy(),
            this.camera = null),
            this.light &amp;&amp; (this.light.removeSelf(),
            this.light.destroy(),
            this.light = null),
            this.player &amp;&amp; (this.player.removeSelf(),
            this.player = null),
            this.scene3d &amp;&amp; (this.scene3d.removeSelf(),
            this.scene3d.destroyChildren(),
            this.scene3d.destroy(),
            this.scene3d = null)
        }
    }
    class Se extends R.scenes.mainscenes.SelectSkinSceneUI {
        constructor() {
            super(),
            this.linUnlock = -1,
            this.isRan = !1
        }
        onEnable() {
            this._goldText.text = i.formatToUnitEN(s.gold),
            this.curPage = 0,
            this._listskin.renderHandler = new Laya.Handler(this,this.changeItem),
            this._listskin.selectHandler = new Laya.Handler(this,this.selectList),
            this._listskin.selectEnable = !0,
            this.initList()
        }
        onOpened(e) {
            this.addEventListener(),
            u.canShow = !1
        }
        initList() {
            this._last.visible = !1,
            this._next.visible = !0,
            this.changeList(),
            this.showPlayerSkin()
        }
        changeList() {
            this._listskin.array = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11],
            this._listskin.selectedIndex = s.skinIndex
        }
        selectList(e) {
            if (this.isUnlock(e))
                if (this.isRan)
                    this._listskin.selectedIndex = -1,
                    S.instance.openTipsScene(!1, "Extracting skin");
                else {
                    let t = this._listskin.getCell(e);
                    t.getChildByName("_imgBg").visible = !1,
                    t.getChildByName("_imgBg1").visible = !0,
                    s.skinIndex != e &amp;&amp; (s.skinIndex = e,
                    m.event(d.SKINCHANGE),
                    this.showPlayerSkin())
                }
            else
                this._listskin.selectedIndex = -1,
                S.instance.openTipsScene(!1, "The skin has not been unlocked yet")
        }
        changeItem(e, t) {
            if (null != e.dataSource || null != e.dataSource) {
                let i = e.getChildByName("_imgBg")
                  , n = e.getChildByName("_imgBg1")
                  , a = e.getChildByName("_imgPlayer")
                  , o = e.getChildByName("_imgSelect")
                  , l = s.unlockSkinList
                  , r = s.skinIndex;
                a.skin = "res/gui/main/shop/skins/" + t + ".png",
                t == r ? (n.visible = !0,
                i.visible = !1) : (n.visible = !1,
                i.visible = !0),
                o.visible = !0;
                for (let e in l)
                    l[Number(e)] == t &amp;&amp; (o.visible = !1);
                this.linUnlock == t &amp;&amp; (n.visible = !0,
                i.visible = !1,
                o.visible = !1)
            } else
                e.visible = !1
        }
        isUnlock(e) {
            let t = s.unlockSkinList;
            for (let i = 0; i &lt; t.length; i++)
                if (e == t[i])
                    return !0;
            return !1
        }
        addEventListener() {
            this.on(Laya.Event.CLICK, this, this.getTouch)
        }
        removeEventListener() {
            this.off(Laya.Event.CLICK, this, this.getTouch)
        }
        getTouch(t) {
            if (this.isRan)
                return;
            let n = t.target;
            if (n == this._imgRan)
                if (s.gold &gt;= 1e3) {
                    let t = e.skinMaxNum;
                    s.unlockSkinList.length &gt;= t ? S.instance.openTipsScene(!1, "You have unlocked all skins") : (s.gold -= 1e3,
                    m.event(d.GOLDCHANGE),
                    this._goldText.text = i.formatToUnitEN(s.gold),
                    this.ranSkin())
                } else
                    S.instance.openTipsScene(!1, `ä½&nbsp;${e.moneyType}ä¸è¶³`);
            else
                n == this._imgWatch ? i.getBrowser() ? e.noAdv ? this.getGold(!0) : this.getGold(!0) : this.getGold(!0) : n == this._imgBack ? S.instance.closeSelectSkinScene() : n == this._next ? this.doNext() : n == this._last &amp;&amp; this.doLast()
        }
        doNext() {
            this.curPage++;
            let e = (this._listskin.width + this._listskin.spaceX) * this.curPage;
            Laya.Tween.to(this._bar, {
                value: e
            }, 500),
            this._last.visible = !0,
            this._next.visible = !1
        }
        doLast() {
            this.curPage--;
            let e = (this._listskin.width + this._listskin.spaceX) * this.curPage;
            Laya.Tween.to(this._bar, {
                value: e
            }, 500),
            this._last.visible = !1,
            this._next.visible = !0
        }
        ranSkin() {
            this.isRan = !0;
            let e = [0, 1, 2, 3, 4, 5];
            1 == this.curPage &amp;&amp; (e = [6, 7, 8, 9, 10, 11]);
            let t = s.unlockSkinList
              , i = !1;
            for (let s of e)
                t.indexOf(s) &lt; 0 &amp;&amp; (i = !0);
            if (i) {
                let i = e.filter(e=&gt;!new Set(t).has(e))
                  , n = Math.floor(Math.random() * i.length)
                  , a = 0;
                Laya.timer.loop(200, this, ()=&gt;{
                    let e = a &gt; i.length ? a % i.length : a
                      , o = i[e];
                    this.linUnlock = o,
                    this.changeList(),
                    ++a &gt; i.length + n &amp;&amp; (Laya.timer.clearAll(this),
                    t.push(i[n]),
                    s.skinIndex = i[n],
                    s.unlockSkinList = t,
                    m.event(d.SKINCHANGE),
                    this.showPlayerSkin(),
                    this.isRan = !1,
                    this._listskin.selectedIndex = i[n],
                    this.linUnlock = -1)
                }
                )
            } else
                0 == this.curPage ? this.doNext() : 1 == this.curPage &amp;&amp; this.doLast(),
                Laya.timer.once(500, this, this.ranSkin)
        }
        showPlayerSkin() {
            if (this.player) {
                this.player.transform.localRotationEuler = new Laya.Vector3(10,0,0),
                this.player.transform.localScale = new Laya.Vector3(.2,.2,.2),
                this.player.transform.localPosition = new Laya.Vector3(-1.5,-2,1);
                for (let e = 0; e &lt; this.player.numChildren; e++) {
                    let t = this.player.getChildAt(e);
                    t.getChildAt(0).active = !1,
                    t.active = e == s.skinIndex,
                    t.transform.localPosition = new Laya.Vector3(0,0,0)
                }
            } else
                this.player = ge.instance.createPlayer(this._dipan.x, this._dipan.y, this._dipan.width, this._dipan.height),
                this.showPlayerSkin()
        }
        getGold(t) {
            var that = this;
            my.r(() =&gt;{
                //if (res) {
                    1 == t &amp;&amp; (s.gold += 500,
                    m.event(d.GOLDCHANGE),
                    S.instance.openTipsScene(!1, "Congratulations on getting 500" + e.moneyType),
                    that._goldText.text = i.formatToUnitEN(s.gold))
                //} else {}
            }
            )
        }
        removeScene() {
            ge.instance.clear()
        }
        onClosed() {
            S.instance.openMainScene(!1),
            this.removeScene(),
            this.removeEventListener()
        }
    }
    class ye extends R.scenes.mainscenes.WinSceneUI {
        constructor() {
            super(),
            this.ovIsClickAd = !1,
            this.obtainGold = 0,
            this.pointNum = 0
        }
        onEnable() {
            u.canShow = !1,
            s.levelIndex++
        }
        onOpened(e) {
            this.scene_Data = e,
            this.initUI(),
            this.initEvent(),
            this.obtainGold = u.getMoney,
            this._normalMoney.value = "" + this.obtainGold,
            this._goldText.text = "" + s.gold,
            Laya.Browser.onMiniGame || this.selectAni(),
            L.instance.stopWin(),
            s.showGuide &amp;&amp; s.showGuide++
        }
        initUI() {
            this._all1.visible = !0,
            this._all2.visible = !1,
            this._bomb.visible = !1,
            this._light.visible = !1,
            this._btnNext.visible = !1,
            this._all1.scaleX = 0,
            s.levelIndex &gt; 5 &amp;&amp; (this._title.y = 340,
            this._title.scale(1.2, 1.2),
            this._title.centerX = 0,
            this._all2.bottom = 400);
            let e = .8;
            Laya.Browser.onTTMiniGame &amp;&amp; (e = 1,
            this._all1.bottom = NaN,
            this._all1.centerY = -310),
            Laya.Tween.to(this._all1, {
                scaleX: e,
                scaleY: e
            }, 200, Laya.Ease.backOut, Laya.Handler.create(this, ()=&gt;{
                s.levelIndex &lt;= 5 ? (this._bomb.visible = !0,
                this._bomb.scaleX = 0,
                Laya.Tween.to(this._bomb, {
                    scaleX: 1,
                    scaleY: 1
                }, 200, null, Laya.Handler.create(this, ()=&gt;{
                    this._light.visible = !0;
                    let e = 330
                      , t = s.levelIndex - 1;
                    this._bombBar.y = e - e * (t - 1) / 4;
                    let i = e - e * t / 4;
                    Laya.Tween.to(this._bombBar, {
                        y: i
                    }, 1500, null, Laya.Handler.create(this, this.showAll2))
                }
                ))) : this.showAll2()
            }
            ))
        }
        showAll2() {
            this._all2.visible = !0,
            this._all2.scaleY = 0,
            Laya.Tween.to(this._all2, {
                scaleY: 1
            }, 200, Laya.Ease.backOut)
        }
        initEvent() {
            this.regClick(this._next, this.judgeMisTouch),
            this.regClick(this._btnNext, this.btnNextClick),
            this.regClick(this._btnVideo, this.btnVideoClick),
            this.regClick(this._btnContinue, this.doContinue)
        }
        btnNextClick() {
            this.judgeMisTouch()
        }
        btnVideoClick() {
            var that = this;
            my.r(() =&gt;{
                //if (res) {
                    that.watchVideo(1)
                //} else {
                 //   that.watchVideo(0)
                //}
            }
            )
        }
        doContinue(e=!1) {
            for (let e = 0; e &lt; 5; ++e) {
                let e = new Laya.Vector2(40,80)
                  , t = new Laya.Image("res/gui/btn/dollar.png");
                this.addChild(t),
                t.scale(.7, .7);
                let i = new Laya.Vector2(Laya.stage.width / 2,Laya.stage.height - 150);
                t.pos(i.x, i.y),
                i.x += 200 * Math.random() - 100,
                i.y += 200 * Math.random() - 100,
                Laya.Tween.to(t, {
                    x: i.x,
                    y: i.y
                }, 200, null, Laya.Handler.create(this, ()=&gt;{
                    Laya.Tween.to(t, {
                        x: e.x,
                        y: e.y
                    }, 500, null, Laya.Handler.create(this, ()=&gt;{
                        t.removeSelf(),
                        t.destroy()
                    }
                    ))
                }
                ))
            }
            this._bomb.visible = !1,
            this._light.visible = !1,
            L.instance.CollectGemVoice(),
            s.gold += e ? this.pointNum : this.obtainGold,
            Laya.timer.once(500, this, ()=&gt;{
                this._goldText.text = "" + s.gold,
                this._btnNext.bottom = -320,
                this._btnNext.visible = !0,
                this._all2.visible = !1
            }
            )
        }
        nextGame() {
            m.event(d.GOLDCHANGE),
            m.event(d.RESETGAME),
            S.instance.closeWinScene()
        }
        judgeMisTouch() {
            this.nextGame()
        }
        closeAdvert() {
            S.instance.openMainScene(!1, !0)
        }
        watchVideo(e) {
            e &amp;&amp; this.doContinue(!0)
        }
        selectAni() {
            this._mul.rotation = -90,
            Laya.Tween.to(this._mul, {
                rotation: 90,
                update: new Laya.Handler(this,this.changePointNum)
            }, 800, null, Laya.Handler.create(this, ()=&gt;{
                Laya.Tween.to(this._mul, {
                    rotation: -90,
                    update: new Laya.Handler(this,this.changePointNum)
                }, 800, null, Laya.Handler.create(this, this.selectAni))
            }
            ))
        }
        changePointNum() {
            let e = this.obtainGold
              , t = Math.abs(this._mul.rotation);
            this.pointNum = t &gt; 69 ? 2 * e : t &gt; 47 ? 3 * e : t &gt; 20 ? 4 * e : 5 * e,
            this._fcpMore.value = "" + this.pointNum.toFixed(0)
        }
        onClosed() {
            this.closeAdvert()
        }
    }
    class pe extends R.scenes.pubscenes.SettingSceneUI {
        constructor() {
            super()
        }
        onEnable() {}
        onOpened(e) {
            this.initMain(),
            this.addEventListener(),
            this._main.scale(.5, .5),
            Laya.Tween.to(this._main, {
                scaleX: 1,
                scaleY: 1
            }, 500, Laya.Ease.backOut),
            u.canShow = !1
        }
        initMain() {
            this.changeVS(!0),
            this.changeMS(!0),
            this.changeSS(!0)
        }
        changeVS(e=!1) {
            let t = this._vibrate.getChildAt(2);
            J.instance.isVibrate ? e ? (t.x = 0,
            t.gray = !1) : (J.instance.isVibrate = !1,
            t.x = this._vibrate.width - t.width,
            t.gray = !0) : e ? (t.x = this._vibrate.width - t.width,
            t.gray = !0) : (J.instance.isVibrate = !0,
            J.instance.vibrateShort(),
            t.x = 0,
            t.gray = !1)
        }
        changeMS(e=!1) {
            let t = this._music.getChildAt(2);
            L.instance.isMusic ? e ? (t.x = 0,
            t.gray = !1) : (L.instance.isMusic = !1,
            t.x = this._music.width - t.width,
            t.gray = !0) : e ? (t.x = this._music.width - t.width,
            t.gray = !0) : (L.instance.isMusic = !0,
            t.x = 0,
            t.gray = !1)
        }
        changeSS(e=!1) {
            let t = this._sound.getChildAt(2);
            L.instance.isSound ? e ? (t.x = 0,
            t.gray = !1) : (L.instance.isSound = !1,
            t.x = this._sound.width - t.width,
            t.gray = !0) : e ? (t.x = this._sound.width - t.width,
            t.gray = !0) : (L.instance.isSound = !0,
            t.x = 0,
            t.gray = !1)
        }
        addEventListener() {
            this.on(Laya.Event.MOUSE_DOWN, this, this.getTouch)
        }
        removeEventListener() {
            this.off(Laya.Event.MOUSE_DOWN, this, this.getTouch)
        }
        getTouch(e) {
            let t = e.target;
            t == this._vibrate ? this.changeVS() : t == this._music ? this.changeMS() : t == this._sound ? this.changeSS() : t == this._close ? Laya.Scene.close(g.SettingScene) : t == this._txtYsxy
        }
        onClosed() {
            S.instance.openMainScene(!1, !1),
            this.removeEventListener()
        }
    }
    class we extends R.scenes.pubscenes.SignSceneUI {
        constructor() {
            super()
        }
        onOpened(e) {
            this.isSelect = !1,
            this._select.skin = "res/gui/main/sign/gouxuan2.png",
            this._video.visible = !0,
            this._video1.visible = !1,
            this.curDate = new Date,
            this.initSign(),
            this.addEventListener(),
            this._main.scale(.5, .5),
            Laya.Tween.to(this._main, {
                scaleX: 1.2,
                scaleY: 1.2
            }, 500, Laya.Ease.backOut),
            u.canShow = !1
        }
        initSign() {
            s.SignNum &gt;= 7 &amp;&amp; this.curDate.getDate() != s.SignDate &amp;&amp; (s.SignNum = 0);
            let e = u.signList;
            for (let t = 0; t &lt; this._box.numChildren; t++) {
                let i = this._box.getChildAt(t);
                i.getChildByName("_isGet").visible = !1;
                let s = i.getChildByName("_typeAndNum")
                  , n = e[t];
                s.value = `x${n.num}`
            }
            let t = s.SignNum;
            for (let e = 0; e &lt; t; e++) {
                this._box.getChildAt(e).getChildByName("_isGet").visible = !0
            }
        }
        addEventListener() {
            this.on(Laya.Event.CLICK, this, this.getTouch)
        }
        removeEventListener() {
            this.off(Laya.Event.CLICK, this, this.getTouch)
        }
        getTouch(e) {
            let t = e.target;
            var that = this;
            if (t == this._sign) {
                let e = this.curDate.getDate()
                  , t = this.curDate.getMonth() + 1
                  , i = this.curDate.getFullYear()
                  , n = s.SignDate;
                n.d == e &amp;&amp; n.m == t &amp;&amp; n.y == i ? S.instance.openTipsScene(!1, "Signed in today") : s.SignNum &lt; 7 &amp;&amp; (this.isSelect ? my.r(() =&gt;{
                   // if (res) {
                        that.startSign(1)
                    //} else {
                    //    that.startSign(0)
                    //}
                }
                ) : this.startSign(!0))
            } else
                t == this._close ? S.instance.closeSignScene() : t == this._select &amp;&amp; (this.isSelect ? (this.isSelect = !1,
                this._select.skin = "res/gui/main/sign/gouxuan2.png",
                this._video.visible = !0,
                this._video1.visible = !1) : (this.isSelect = !0,
                this._select.skin = "res/gui/main/sign/gouxuan1.png",
                this._video.visible = !1,
                this._video1.visible = !0))
        }
        startSign(t) {
            if (t) {
                s.SignNum++;
                let t = {
                    d: this.curDate.getDate(),
                    m: this.curDate.getMonth() + 1,
                    y: this.curDate.getFullYear()
                };
                s.SignDate = t;
                for (let e = 0; e &lt; s.SignNum; e++) {
                    this._box.getChildAt(e).getChildByName("_isGet").visible = !0
                }
                let i = u.signList[s.SignNum - 1].num;
                this.isSelect &amp;&amp; (i *= 2),
                S.instance.openTipsScene(!1, `Congratulations on getting ${i}${e.moneyType}`),
                s.gold += i,
                m.event(d.GOLDCHANGE)
            }
        }
        onClosed() {
            S.instance.openMainScene(!1, !1),
            this.removeEventListener()
        }
    }
    class fe extends R.scenes.pubscenes.TipsSceneUI {
        constructor() {
            super()
        }
        onEnable() {
            this.y = 800 + (e.stage_height - e.ore_height) / 2,
            this.x = (e.ore_width - this.width) / 2,
            this.zOrder = 4e3
        }
        onOpened(e) {
            this._txtMsg.text = e,
            this.timer.frameOnce(55, this, this.closeView)
        }
        closeView() {
            this._txtMsg.text = "",
            this.timer.clearAll(this),
            this.close()
        }
    }
    class ve extends R.scenes.pubscenes.TurntableSceneUI {
        constructor() {
            super(),
            this.lastRot = 0,
            this.isLock = !1,
            this.getGold = 0
        }
        onOpened(e) {
            this.isLock = !1,
            this.getGold = 0,
            this._zhuan.rotation = 0,
            this.scene_Data = e,
            this.addEventListener(),
            this._main.scale(.5, .5),
            Laya.Tween.to(this._main, {
                scaleX: 1,
                scaleY: 1
            }, 500, Laya.Ease.backOut),
            u.canShow = !1
        }
        addEventListener() {
            this.on(Laya.Event.CLICK, this, this.getTouch)
        }
        removeEventListener() {
            this.off(Laya.Event.CLICK, this, this.getTouch)
        }
        getTouch(e) {
            let t = e.target;
            var that = this;
            if (t == this._start) {
                if (this.isLock)
                    return void S.instance.openTipsScene(!1, "In the lottery");
                my.r(() =&gt;{
                    //if (res) {
                        that.doStart(1)
                    //} else {
                        //that.doStart(0)
                    //}
                }
                )
            } else if (t == this._close) {
                if (this.isLock)
                    return void S.instance.openTipsScene(!1, "In the lottery");
                S.instance.closeTurnScene()
            }
        }
        doStart(e=null) {
            if (e) {
                this.isLock = !0,
                this.randomMoney(),
                console.log(this.getGold);
                let e = 0;
                200 == this.getGold ? e = 24 : 150 == this.getGold ? e = 68 : 300 == this.getGold ? e = 113 : 250 == this.getGold ? e = 158 : 350 == this.getGold ? e = 204 : 500 == this.getGold ? e = 249 : 1e3 == this.getGold ? e = 293 : 100 == this.getGold &amp;&amp; (e = 338),
                e = e - 20 + 40 * Math.random(),
                Laya.Tween.to(this._zhuan, {
                    rotation: this._zhuan.rotation - this.lastRot + 3600 + e
                }, 5e3, Laya.Ease.circInOut, Laya.Handler.create(this, this.doSettlement)),
                this.lastRot = e
            }
        }
        randomMoney() {
            let e = Math.random();
            e &lt;= 100 / 2850 ? this.getGold = 1e3 : e &gt; 100 / 2850 &amp;&amp; e &lt;= 250 / 2850 ? this.getGold = 500 : e &gt; 250 / 2850 &amp;&amp; e &lt;= 450 / 2850 ? this.getGold = 350 : e &gt; 450 / 2850 &amp;&amp; e &lt;= 700 / 2850 ? this.getGold = 300 : e &gt; 700 / 2850 &amp;&amp; e &lt;= 1e3 / 2850 ? this.getGold = 250 : e &gt; 1e3 / 2850 &amp;&amp; e &lt;= 1350 / 2850 ? this.getGold = 200 : e &gt; 1350 / 2850 &amp;&amp; e &lt;= 1850 / 2850 ? this.getGold = 150 : e &gt; 1850 / 2850 &amp;&amp; e &lt;= 2850 &amp;&amp; (this.getGold = 100)
        }
        doSettlement() {
            this.isLock = !1,
            s.gold += this.getGold,
            S.instance.openTipsScene(!1, "Congratulations on getting" + this.getGold + e.moneyType),
            m.event(d.GOLDCHANGE)
        }
        onClosed() {
            this.scene_Data ? S.instance.openMainScene(!1, !0) : S.instance.openMainScene(!1, !1),
            this.removeEventListener()
        }
    }
    class Ne extends Laya.HScrollBar {
        constructor() {
            super()
        }
        onEnable() {
            this.value = 0,
            this.toValue = this.max,
            this.fatherObj = this.parent,
            this.fatherObj.on(Laya.Event.MOUSE_DOWN, this, this.stopChange),
            this.fatherObj.on(Laya.Event.MOUSE_OUT, this, this.stopChange),
            this.fatherObj.on(Laya.Event.MOUSE_UP, this, this.startChange),
            this.startChange()
        }
        startChange() {
            this.timer.clearAll(this),
            this.timer.once(600, this, ()=&gt;{
                this.road()
            }
            )
        }
        road() {
            let e = 20 * (0 == this.toValue ? this.value : this.toValue - this.value);
            Laya.Tween.to(this, {
                value: this.toValue
            }, e, null, Laya.Handler.create(this, ()=&gt;{
                this.toValue = 0 == this.toValue ? this.max : 0,
                this.road()
            }
            ))
        }
        stopChange() {
            Laya.Tween.clearAll(this)
        }
        onDisable() {
            this.fatherObj.off(Laya.Event.MOUSE_DOWN, this, this.stopChange),
            this.fatherObj.off(Laya.Event.MOUSE_OUT, this, this.stopChange),
            this.fatherObj.off(Laya.Event.MOUSE_UP, this, this.startChange)
        }
    }
    class Pe extends Laya.Box {
        constructor() {
            super(),
            this._dataSource = null
        }
        get dataSource() {
            return this._dataSource
        }
        set dataSource(e) {
            this._dataSource = e,
            this.refresh()
        }
        onEnable() {
            let e = Math.ceil(6 * Math.random());
            this._imgTitleBg = this.getChildByName("_imgTitleBg"),
            this._imgTitleBg.skin = ""
        }
        refresh() {
            let e = this;
            if (e.dataSource) {
                e._imgIcon || (e._txtTitle = e.getChildByName("_txtTitle"),
                e._imgIcon = e.getChildByName("_imgIcon"),
                e._imgTitleBg = e.getChildByName("_imgTitleBg"));
                let t = e.dataSource.show_config.image;
                e._txtTitle.text = i.shortText(e.dataSource.show_config.title),
                t &amp;&amp; (e._imgIcon.skin = t)
            }
        }
    }
    class De extends Laya.Box {
        constructor() {
            super(...arguments),
            this._dataSource = null
        }
        get dataSource() {
            return this._dataSource
        }
        set dataSource(e) {
            this._dataSource = e,
            this.refresh()
        }
        onEnable() {}
        refresh() {
            let e = this;
            if (e.dataSource) {
                e._imgIcon || (e._imgIcon = e.getChildByName("_imgIcon"),
                e._imgNew = e.getChildByName("_imgNew"));
                let t = e.dataSource.show_config.image;
                t &amp;&amp; (e._imgIcon.skin = t)
            }
        }
    }
    class Ve extends Laya.Box {
        constructor() {
            super(),
            this._dataSource = null,
            this.times = 0
        }
        get dataSource() {
            return this._dataSource
        }
        set dataSource(e) {
            this._dataSource = e,
            this.refresh()
        }
        onEnable() {
            let e = Math.ceil(6 * Math.random());
            this._box = this.getChildByName("_box"),
            this._imgBg = this._box.getChildByName("_imgBg"),
            this._imgBg.skin = ""
        }
        refresh() {
            let e = this;
            if (e._dataSource) {
                e._imgIcon || (e._box = e.getChildByName("_box"),
                e._txtTitle = e._box.getChildByName("_txtTitle"),
                e._imgIcon = e._box.getChildByName("_imgIcon")),
                e._txtTitle.text = i.shortText(e._dataSource.show_config.title);
                let t = e._dataSource.show_config.image;
                t &amp;&amp; (e._imgIcon.skin = t)
            }
        }
    }
    class Ue extends Laya.Box {
        constructor() {
            super(),
            this._dataSource = null
        }
        get dataSource() {
            return this._dataSource
        }
        set dataSource(e) {
            this._dataSource = e,
            this.refresh()
        }
        onEnable() {
            let e = Math.ceil(6 * Math.random());
            this._imgTitleBg = this.getChildByName("_imgTitleBg"),
            this._imgTitleBg.skin = ""
        }
        refresh() {
            let e = this;
            if (e.dataSource) {
                e._imgIcon || (e._txtTitle = e.getChildByName("_txtTitle"),
                e._imgIcon = e.getChildByName("_imgIcon"));
                let t = e.dataSource.show_config.image;
                e._txtTitle.text = i.shortText(e.dataSource.show_config.title),
                t &amp;&amp; (e._imgIcon.skin = t)
            }
        }
    }
    class Fe {
        constructor() {}
        static init() {
            var e = Laya.ClassUtils.regClass;
            e("scenes/main/FailScene.ts", H),
            e("scenes/main/LoadScene.ts", he),
            e("scenes/wx/item/SideBoxItem.ts", ce),
            e("scenes/wx/item/VScrollBarChange.ts", de),
            e("scenes/main/MainScene.ts", me),
            e("scenes/main/PlayScene.ts", ue),
            e("scenes/main/SelectSkinScene.ts", Se),
            e("scenes/main/WinScene.ts", ye),
            e("scenes/pub/SettingScene.ts", pe),
            e("scenes/pub/SignScene.ts", we),
            e("scenes/pub/TipsScene.ts", fe),
            e("scenes/pub/TurntableScene.ts", ve),
            e("scenes/wx/item/HScrollBarChange.ts", Ne),
            e("scenes/wx/item/SideBoxItem1.ts", Pe),
            e("scenes/wx/item/SideBotItem.ts", De),
            e("scenes/wx/item/SideDoubleListItem.ts", Ve),
            e("scenes/wx/item/SideLeftItem.ts", Ue)
        }
    }
    Fe.width = 1080,
    Fe.height = 1920,
    Fe.scaleMode = "fixedheight",
    Fe.screenMode = "none",
    Fe.alignV = "middle",
    Fe.alignH = "center",
    Fe.startScene = "scenes/mainscenes/LoadScene.scene",
    Fe.sceneRoot = "",
    Fe.debug = !1,
    Fe.stat = !0,
    Fe.physicsDebug = !1,
    Fe.exportSceneToJson = !0,
    Fe.init();
    class Ye {
        constructor() {
            this._version = null,
            this._browser = null,
            this.flowConfig = {}
        }
        static get instance() {
            return this._instance ? this._instance : this._instance = new Ye
        }
        init() {
            try {
                i.getIsMini() &amp;&amp; (this._browser = i.getBrowser(),
                this._browser.tmSDK.init({
                    hideRequestLog: !1,
                    appVersion: "1.0.0"
                }))
            } catch (e) {
                a.log("åˆå§‹:" + e)
            }
        }
        login(e, t) {}
        checkFlowIsOpen(e, t, i) {}
        getFlowConfig(e, t, i, s=!0) {
            let n = this;
            if (n.flowConfig[e]) {
                if (i &amp;&amp; t)
                    if (s) {
                        let s = n.flowConfig[e].creatives;
                        s ? (s = JSON.parse(JSON.stringify(s)),
                        i.apply(t, [s])) : i.apply(t, [null])
                    } else
                        i.apply(t, [n.flowConfig[e]])
            } else
                try {
                    this._browser.tmSDK.getFlowConfig({
                        positionId: e
                    }).then(a=&gt;{
                        if (n.flowConfig[e] = a,
                        i &amp;&amp; t)
                            if (s) {
                                let s = n.flowConfig[e].creatives;
                                s ? (s = JSON.parse(JSON.stringify(s)),
                                i.apply(t, [s])) : i.apply(t, [null])
                            } else
                                i.apply(t, [n.flowConfig[e]])
                    }
                    )
                } catch (e) {
                    a.log(e)
                }
        }
        flowNavigate(e, t, i="") {
            try {
                this._browser.tmSDK.flowNavigate({
                    positionId: e,
                    creativeId: t
                }).then(t=&gt;{
                    this.flowConfig[e] = t,
                    "navigateToMiniProgram:fail cancel" == t.navigateMessage.errMsg ? m.event(d.USERCANCEL) : "navigateToMiniProgram:ok" == t.navigateMessage.errMsg &amp;&amp; m.event(d.USERJUMP)
                }
                ).catch(e=&gt;{
                    a.log("è·³è½¬å¤±è´¥", e)
                }
                )
            } catch (e) {}
        }
    }
    new class {
        constructor() {
            Config.isAntialias = !0,
            window.Laya3D ? Laya3D.init(Fe.width, Fe.height) : Laya.init(Fe.width, Fe.height, Laya.WebGL),
            Laya.Physics &amp;&amp; Laya.Physics.enable(),
            Laya.DebugPanel &amp;&amp; Laya.DebugPanel.enable(),
            Laya.stage.screenMode = Fe.screenMode,
            Laya.stage.scaleMode = Fe.scaleMode,
            Laya.stage.alignV = Fe.alignV,
            Laya.stage.alignH = Fe.alignH,
            Laya.URL.exportSceneToJson = Fe.exportSceneToJson,
            (Fe.debug || "true" == Laya.Utils.getQueryString("debug")) &amp;&amp; Laya.enableDebugPanel(),
            Fe.physicsDebug &amp;&amp; Laya.PhysicsDebugDraw &amp;&amp; Laya.PhysicsDebugDraw.enable(),
            e.isDebug &amp;&amp; !i.getIsMini() &amp;&amp; Laya.Stat.show(0, 0),
            Laya.alertGlobalError(!0),
            Laya.stage.useRetinalCanvas = !0,
            this.onVersionLoaded()
        }
        onVersionLoaded() {
				setTimeout(function(){
                            my.i(() =&gt; {});
                        }, 500);
            Laya.AtlasInfoManager.enable("fileconfig.json", Laya.Handler.create(this, this.onConfigLoaded))

		my.init({
                 gamemonetizeId: "batzzs3nt7ts28o62amlocig234vdm8y",
                 complete: () =&gt; {
          console.log('gamemonetizeId');
	}
	         })			
        }
        onConfigLoaded() {
            let t = this;
            if (Laya.MouseManager.multiTouchEnabled = !1,
            i.getIsMini()) {
                let s = i.getBrowser()
                  , a = s.getLaunchOptionsSync();
                if (e.scene = a.scene,
                null != a &amp;&amp; "" != a) {
                    let e = a.query.wxgamecid
                      , t = a.query.channelCode;
                    o.pos = a.query.pos,
                    o.isWhite = !(!e &amp;&amp; !t)
                }
                if (s.getSystemInfo({
                    success: function(t) {
                        t.windowWidth &gt; t.windowHeight ? (e.stage_height = e.ore_width / t.windowHeight * t.windowWidth,
                        e.statusBarHeight = t.statusBarHeight * e.ore_width / t.windowHeight) : (e.stage_height = e.ore_width / t.windowWidth * t.windowHeight,
                        e.statusBarHeight = t.statusBarHeight * e.ore_width / t.windowWidth)
                    }
                }),
                Laya.Browser.onMiniGame) {
                    let e = Laya.Browser.window.wx;
                    f.instance.init(),
                    e.showShareMenu({
                        withShareTicket: !0
                    }),
                    re.instance.init(),
                    re.instance.login(t, ()=&gt;{
                        re.instance.getFlowConfig(n.wxId, t, e=&gt;{
                            S.instance.openLoadScene()
                        }
                        )
                    }
                    )
                } else
                    S.instance.openLoadScene()
            } else
                e.stage_height = e.ore_width / Laya.stage.width * Laya.stage.height,
                Fe.startScene &amp;&amp; Laya.Scene.open(Fe.startScene, !1)
        }
        lastRemaining(e, t) {}
        maxSlidingWindow(e, t) {
            if (1 == t)
                return e;
            let i = []
              , s = []
              , n = [];
            for (let i = 0; i &lt; t; ++i) {
                for (; s.length &gt; 0 &amp;&amp; s[s.length - 1] &lt; e[i]; )
                    s.pop(),
                    n.pop();
                s.push(e[i]),
                n.push(i)
            }
            let a = 0
              , o = t - 1
              , l = e.length - 1
              , r = s[0];
            for (i.push(r); o &lt; l; ) {
                let t = s.indexOf(e[a])
                  , l = n.indexOf(a);
                for (t &gt;= 0 &amp;&amp; l &gt;= 0 &amp;&amp; (s.splice(t, 1),
                n.splice(l, 1)),
                a++,
                o++; s.length &gt; 0 &amp;&amp; s[s.length - 1] &lt; e[o]; )
                    s.pop(),
                    n.pop();
                s.push(e[o]),
                n.push(o),
                r = s[0],
                i.push(r)
            }
            return i
        }
    }
}();
</pre></body></html>