/* AUTHORIZATION SKIP ES6 */
(function (t) {
  function e(e) {
    for (
      var s, a, r = e[0], l = e[1], c = e[2], d = 0, u = [];
      d < r.length;
      d++
    )
      ((a = r[d]),
        Object.prototype.hasOwnProperty.call(o, a) && o[a] && u.push(o[a][0]),
        (o[a] = 0));
    for (s in l) Object.prototype.hasOwnProperty.call(l, s) && (t[s] = l[s]);
    h && h(e);
    while (u.length) u.shift()();
    return (n.push.apply(n, c || []), i());
  }
  function i() {
    for (var t, e = 0; e < n.length; e++) {
      for (var i = n[e], s = !0, r = 1; r < i.length; r++) {
        var l = i[r];
        0 !== o[l] && (s = !1);
      }
      s && (n.splice(e--, 1), (t = a((a.s = i[0]))));
    }
    return t;
  }
  var s = {},
    o = { app: 0 },
    n = [];
  function a(e) {
    if (s[e]) return s[e].exports;
    var i = (s[e] = { i: e, l: !1, exports: {} });
    return (t[e].call(i.exports, i, i.exports, a), (i.l = !0), i.exports);
  }
  ((a.m = t),
    (a.c = s),
    (a.d = function (t, e, i) {
      a.o(t, e) || Object.defineProperty(t, e, { enumerable: !0, get: i });
    }),
    (a.r = function (t) {
      ("undefined" !== typeof Symbol &&
        Symbol.toStringTag &&
        Object.defineProperty(t, Symbol.toStringTag, { value: "Module" }),
        Object.defineProperty(t, "__esModule", { value: !0 }));
    }),
    (a.t = function (t, e) {
      if ((1 & e && (t = a(t)), 8 & e)) return t;
      if (4 & e && "object" === typeof t && t && t.__esModule) return t;
      var i = Object.create(null);
      if (
        (a.r(i),
        Object.defineProperty(i, "default", { enumerable: !0, value: t }),
        2 & e && "string" != typeof t)
      )
        for (var s in t)
          a.d(
            i,
            s,
            function (e) {
              return t[e];
            }.bind(null, s),
          );
      return i;
    }),
    (a.n = function (t) {
      var e =
        t && t.__esModule
          ? function () {
              return t["default"];
            }
          : function () {
              return t;
            };
      return (a.d(e, "a", e), e);
    }),
    (a.o = function (t, e) {
      return Object.prototype.hasOwnProperty.call(t, e);
    }),
    (a.p = "./"));
  var r = (window["webpackJsonp"] = window["webpackJsonp"] || []),
    l = r.push.bind(r);
  ((r.push = e), (r = r.slice()));
  for (var c = 0; c < r.length; c++) e(r[c]);
  var h = l;
  (n.push([0, "chunk-vendors"]), i());
})({
  0: function (t, e, i) {
    t.exports = i("cd49");
  },
  "02e1": function (t, e) {
    t.exports =
      "precision highp float;\nuniform float time;\nuniform float fps;\nuniform vec2 grid;\nuniform sampler2D waitMap;\nuniform sampler2D walkMap;\nuniform bool isTab;\nvarying vec2 vUv;\nvec4 seqTexture(sampler2D tex, vec2 uv) {\n\tfloat colNum = grid.x;\n\tfloat rowNum = grid.y;\n\tfloat index = floor(mod(floor(time * fps), colNum * rowNum));\n\tfloat col = floor(mod(index, colNum));\n\tfloat row = (rowNum - 1.0) - floor(index / colNum);\n\treturn texture2D(tex, (uv / grid) + (vec2(col, row) / grid));\n}\nvoid main() {\n\tvec2 uv = vec2(vUv.x, 1.0 - vUv.y);\n\tvec4 col;\n\tif (isTab) {\n\t\tcol = seqTexture(walkMap, uv);\n\t}\n\telse {\n\t\tcol = seqTexture(waitMap, uv);\n\t}\n\tgl_FragColor = col;\n}\n";
  },
  "0345": function (t, e, i) {},
  "0432": function (t, e, i) {},
  "04a8": function (t, e, i) {},
  "077e": function (t, e, i) {},
  "11aa": function (t, e, i) {
    "use strict";
    i("e61b");
  },
  "13ac": function (t, e) {
    t.exports =
      "precision highp float;\nuniform float time;\nuniform float shakeDir;\nuniform float shakePinPos;\nuniform float shakeAmp;\nuniform float shakeFreq;\nuniform sampler2D noiseTexture;\nuniform sampler2D map;\nvarying vec2 vUv;\nvoid main() {\n\tvec2 uv = vUv;\n\tfloat shake = 0.0;\n\tif (shakeDir == 0.0) {\n\t\tfloat pin = smoothstep(1.0 - shakePinPos, shakePinPos, uv.x);\n\t\tshake = ((sin((-time * 5.0) + ((uv.x * 0.5) * shakeFreq)) * 0.04) * pin) * shakeAmp;\n\t\tuv.y += shake;\n\t\tfloat pinY = smoothstep(1.0 - shakePinPos, shakePinPos, uv.y);\n\t\tshake = (((sin((-time * 8.0) + ((uv.y * 0.5) * shakeFreq)) * 0.04) * pinY) * shakeAmp) * 0.05;\n\t\tuv.x += shake;\n\t}\n\telse {\n\t\tfloat pin = smoothstep(1.0 - shakePinPos, shakePinPos, uv.x);\n\t\tshake = (((sin((-time * 8.0) + ((uv.x * 0.5) * shakeFreq)) * 0.04) * pin) * shakeAmp) * 0.05;\n\t\tuv.y += shake;\n\t\tfloat pinY = smoothstep(1.0 - shakePinPos, shakePinPos, uv.y);\n\t\tshake = ((sin((-time * 8.0) + ((uv.y * 0.5) * shakeFreq)) * 0.04) * pinY) * shakeAmp;\n\t\tuv.x += shake;\n\t}\n\tfloat n = texture2D(noiseTexture, (vUv * 0.15) + (time * 0.01)).r;\n\tvec4 col = texture2D(map, uv);\n\tgl_FragColor = col;\n}\n";
  },
  "14fc": function (t, e, i) {},
  "156e": function (t, e, i) {},
  "16a8": function (t, e, i) {},
  "1fb3": function (t, e) {
    t.exports =
      "precision highp float;\nvarying vec3 vWorldPos;\nuniform sampler2D map;\nuniform float time;\nuniform float random;\nuniform float opacity;\nvarying vec2 vUv;\nvoid main() {\n\tvec4 tex2d = texture2D(map, vUv);\n\tgl_FragColor = vec4(tex2d.xyz, tex2d.a * opacity);\n}\n";
  },
  2042: function (t, e, i) {},
  "232e": function (t, e) {
    t.exports =
      "precision highp float;\nuniform float time;\nuniform float fps;\nuniform vec2 grid;\nuniform sampler2D waitMap;\nuniform sampler2D walkMap;\nuniform bool isTab;\nvarying vec2 vUv;\nvec4 seqTexture(sampler2D tex, vec2 uv) {\n\tfloat colNum = grid.x;\n\tfloat rowNum = grid.y;\n\tfloat index = floor(mod(floor(time * fps), colNum * rowNum));\n\tfloat col = floor(mod(index, colNum));\n\tfloat row = (rowNum - 1.0) - floor(index / colNum);\n\treturn texture2D(tex, (uv / grid) + (vec2(col, row) / grid));\n}\nvoid main() {\n\tvec2 uv = vec2(vUv.x, 1.0 - vUv.y);\n\tvec4 col;\n\tif (isTab) {\n\t\tcol = seqTexture(walkMap, uv);\n\t}\n\telse {\n\t\tcol = seqTexture(waitMap, uv);\n\t}\n\tgl_FragColor = col;\n}\n";
  },
  3199: function (t, e, i) {},
  3469: function (t, e, i) {},
  "361e": function (t, e, i) {},
  "36cc": function (t, e) {
    t.exports =
      "#define NODE_NUM 14\r\nvarying vec2 vUv;\nvarying vec3 vWorldPos;\nvarying vec3 vViewNormal;\nvarying vec3 vViewDir;\nvarying vec3 vViewPosition;\nuniform float time;\nuniform float random;\nuniform vec2 nodePosArr[NODE_NUM];\nuniform vec2 offsetArr[NODE_NUM];\nuniform bool isFall;\nuniform float minY;\nuniform float maxY;\nvoid main() {\n\tvUv = uv;\n\tvWorldPos = (modelMatrix * vec4(position, 1.0)).xyz;\n\tvViewNormal = normalize(modelViewMatrix * vec4(normal, 0.0)).xyz;\n\tvViewPosition = (modelViewMatrix * vec4(position, 1.0)).xyz;\n\tvViewDir = normalize(-vViewPosition);\n\tvec2 nodePos;\n\tvec2 nextV;\n\tvec3 newNodePos = position;\n\tif (isFall) {\n\t\tfor (int i = 0; i < NODE_NUM; i++) {\n\t\t\tif (abs(position.y - (nodePosArr[i]).y) < 0.0001) {\n\t\t\t\tnodePos = nodePosArr[i] + offsetArr[i];\n\t\t\t\tif (i == 0) {\n\t\t\t\t\tvec2 nextNode = offsetArr[i + 1] + nodePosArr[i + 1];\n\t\t\t\t\tnextV = normalize(nextNode - nodePos);\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tvec2 prevNode = offsetArr[i - 1] + nodePosArr[i - 1];\n\t\t\t\t\tnextV = normalize(nodePos - prevNode);\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t\tvec3 crossV = cross(vec3(0.0, 0.0, 1.0), vec3(nextV, 0));\n\t\tnewNodePos = vec3(nodePos, 0.0) + (crossV * position.x);\n\t}\n\tfloat height = smoothstep(0.0, maxY, position.y);\n\tfloat k = pow(height, 3.0);\n\tfloat offest = (k * sin((time * 2.0) * random)) * 0.1;\n\tgl_Position = (projectionMatrix * modelViewMatrix) * vec4(newNodePos.x + offest, newNodePos.y, newNodePos.z, 1.0);\n}\n";
  },
  "376d": function (t, e, i) {},
  3986: function (t, e, i) {
    "use strict";
    i("4f95");
  },
  "3a18": function (t, e, i) {
    "use strict";
    i("9d95");
  },
  "3ba1": function (t, e, i) {
    "use strict";
    i("e38e");
  },
  4722: function (t, e) {
    t.exports =
      "varying vec2 vUv;\nvarying vec3 vWorldPos;\nvarying vec3 vViewNormal;\nvarying vec3 vViewDir;\nvarying vec3 vViewPosition;\nuniform float time;\nuniform float maxY;\nuniform float shakeDir;\nuniform float shakePinPos;\nuniform float shakeOffset;\nuniform float shakeFreq;\nuniform float shakePin;\nvoid main() {\n\tvUv = uv;\n\tvWorldPos = (modelMatrix * vec4(position, 1.0)).xyz;\n\tvViewNormal = normalize(modelViewMatrix * vec4(normal, 0.0)).xyz;\n\tvViewPosition = (modelViewMatrix * vec4(position, 1.0)).xyz;\n\tvViewDir = normalize(-vViewPosition);\n\tvec3 newNodePos = position;\n\tfloat height = 1.0 - smoothstep(0.0, maxY, newNodePos.y);\n\tfloat shake = 0.0;\n\tfloat pin = smoothstep(1.0 - shakePinPos, shakePinPos, height) * shakePin;\n\tfloat k = pow(pin, 1.2);\n\tshake = (((shakeDir * shakeOffset) * k) * 0.1) + ((sin((-time * 5.0) + ((height * 0.5) * shakeFreq)) * 0.04) * pin);\n\tvec3 newPos = position;\n\tif (newPos.y >= (newPos.x / 2.0)) {\n\t\tnewPos.x += ((sin((time * 2.0) / 10.0) * cos(time / 5.0)) * 0.5);\n\t\tnewPos.x += (shake * 5.0);\n\t\tnewPos.y += ((sin((time * 2.0) / 3.0) * (1.0 - vUv.y)) * 0.1);\n\t}\n\tgl_Position = (projectionMatrix * modelViewMatrix) * vec4(newPos, 1.0);\n}\n";
  },
  "4b66": function (t, e, i) {
    "use strict";
    i("5056");
  },
  "4d46": function (t, e) {
    t.exports =
      "precision highp float;\nuniform float time;\nuniform float fps;\nuniform vec2 grid;\nuniform sampler2D waitMap;\nuniform sampler2D walkMap;\nuniform bool isWalk;\nvarying vec2 vUv;\nvec4 seqTexture(sampler2D tex, vec2 uv) {\n\tfloat colNum = grid.x;\n\tfloat rowNum = grid.y;\n\tfloat index = floor(mod(floor(time * fps), colNum * rowNum));\n\tfloat col = floor(mod(index, colNum));\n\tfloat row = (rowNum - 1.0) - floor(index / colNum);\n\treturn texture2D(tex, (uv / grid) + (vec2(col, row) / grid));\n}\nvoid main() {\n\tvec2 uv = vec2(vUv.x, 1.0 - vUv.y);\n\tvec4 col;\n\tif (isWalk) {\n\t\tcol = seqTexture(walkMap, uv);\n\t}\n\telse {\n\t\tcol = seqTexture(waitMap, uv);\n\t}\n\tgl_FragColor = col;\n}\n";
  },
  "4d5e": function (t, e, i) {
    "use strict";
    i("ce5f");
  },
  "4f95": function (t, e, i) {},
  5056: function (t, e, i) {},
  "515e": function (t, e, i) {},
  "55d6": function (t, e) {
    t.exports =
      "#define NODE_NUM 14\r\nvarying vec2 vUv;\nvarying vec3 vWorldPos;\nvarying vec3 vViewNormal;\nvarying vec3 vViewDir;\nvarying vec3 vViewPosition;\nuniform float time;\nuniform float random;\nuniform vec2 nodePosArr[NODE_NUM];\nuniform vec2 offsetArr[NODE_NUM];\nuniform bool isFall;\nuniform float minY;\nuniform float maxY;\nvoid main() {\n\tvUv = uv;\n\tvWorldPos = (modelMatrix * vec4(position, 1.0)).xyz;\n\tvViewNormal = normalize(modelViewMatrix * vec4(normal, 0.0)).xyz;\n\tvViewPosition = (modelViewMatrix * vec4(position, 1.0)).xyz;\n\tvViewDir = normalize(-vViewPosition);\n\tvec2 nodePos;\n\tvec2 nextV;\n\tvec3 newNodePos = position;\n\tif (isFall) {\n\t\tfor (int i = 0; i < NODE_NUM; i++) {\n\t\t\tif (abs(position.y - (nodePosArr[i]).y) < 0.001) {\n\t\t\t\tnodePos = nodePosArr[i] + offsetArr[i];\n\t\t\t\tif (i == 0) {\n\t\t\t\t\tvec2 nextNode = offsetArr[i + 1] + nodePosArr[i + 1];\n\t\t\t\t\tnextV = normalize(nextNode - nodePos);\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tvec2 prevNode = offsetArr[i - 1] + nodePosArr[i - 1];\n\t\t\t\t\tnextV = normalize(nodePos - prevNode);\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t\tvec3 crossV = cross(vec3(0.0, 0.0, 1.0), vec3(nextV, 0));\n\t\tnewNodePos = vec3(nodePos, 0.0) - (crossV * position.x);\n\t}\n\tfloat height = smoothstep(0.0, maxY, position.y);\n\tfloat k = pow(height, 3.0);\n\tfloat offest = (k * sin((time * 2.0) * random)) * 0.3;\n\tgl_Position = (projectionMatrix * modelViewMatrix) * vec4(newNodePos.x + offest, newNodePos.y, newNodePos.z, 1.0);\n}\n";
  },
  "584b": function (t, e, i) {
    "use strict";
    i("2042");
  },
  "5a83": function (t, e, i) {},
  "5baf": function (t, e, i) {
    "use strict";
    i("cd14");
  },
  "5d78": function (t, e) {
    t.exports =
      "precision highp float;\nuniform float time;\nuniform float fps;\nuniform vec2 grid;\nuniform sampler2D waveMap;\nvarying vec2 vUv;\nvec4 seqTexture(sampler2D tex, vec2 uv) {\n\tfloat colNum = grid.x;\n\tfloat rowNum = grid.y;\n\tfloat index = floor(mod(floor(time * fps), colNum * rowNum));\n\tfloat col = floor(mod(index, colNum));\n\tfloat row = (rowNum - 1.0) - floor(index / colNum);\n\treturn texture2D(tex, (uv / grid) + (vec2(col, row) / grid));\n}\nvoid main() {\n\tvec2 uv = vec2(vUv.x, 1.0 - vUv.y);\n\tvec4 col;\n\tcol = seqTexture(waveMap, uv);\n\tgl_FragColor = col;\n}\n";
  },
  "64b5": function (t, e, i) {},
  "64bc": function (t, e, i) {
    "use strict";
    i("0345");
  },
  "69ba": function (t, e, i) {
    "use strict";
    i("16a8");
  },
  7059: function (t, e, i) {},
  7541: function (t, e) {
    t.exports =
      "varying vec2 vUv;\nvarying vec3 vWorldPos;\nvarying vec3 vViewNormal;\nvarying vec3 vViewDir;\nvarying vec3 vViewPosition;\nuniform float time;\nuniform float delta;\nuniform float random;\nuniform float minY;\nuniform float maxY;\nvoid main() {\n\tvUv = uv;\n\tvWorldPos = (modelMatrix * vec4(position, 1.0)).xyz;\n\tvViewNormal = normalize(modelViewMatrix * vec4(normal, 0.0)).xyz;\n\tvViewPosition = (modelViewMatrix * vec4(position, 1.0)).xyz;\n\tvViewDir = normalize(-vViewPosition);\n\tvec3 newNodePos = position;\n\tfloat height = 1.0 - smoothstep(maxY, minY, position.y);\n\tfloat k = pow(height, 1.5);\n\tfloat offest = ((k * cos((time * 4.0) * random)) * delta) * 10.0;\n\tgl_Position = (projectionMatrix * modelViewMatrix) * vec4(newNodePos.x + offest, newNodePos.y, newNodePos.z, 1.0);\n}\n";
  },
  "755c": function (t, e) {
    t.exports =
      "precision highp float;\nvarying vec3 vWorldPos;\nuniform sampler2D map;\nuniform float opacity;\nvarying vec2 vUv;\nvoid main() {\n\tvec4 tex2d = texture2D(map, vUv);\n\tgl_FragColor = vec4(tex2d.xyz, opacity * tex2d);\n}\n";
  },
  8051: function (t, e, i) {
    "use strict";
    i("077e");
  },
  "808c": function (t, e, i) {
    "use strict";
    i("5a83");
  },
  "81d5": function (t, e, i) {
    "use strict";
    i("156e");
  },
  "824a": function (t, e, i) {},
  "87b2": function (t, e, i) {},
  "8f43": function (t, e, i) {
    "use strict";
    i("04a8");
  },
  9755: function (t, e, i) {},
  "9ad2": function (t, e, i) {
    "use strict";
    i("eb67");
  },
  "9c11": function (t, e, i) {
    "use strict";
    i("87b2");
  },
  "9d95": function (t, e, i) {},
  "9e21": function (t, e) {
    t.exports =
      "varying vec2 vUv;\nvarying vec3 vWorldPos;\nvarying vec3 vViewNormal;\nvarying vec3 vViewDir;\nvarying vec3 vViewPosition;\nvoid main() {\n\tvUv = uv;\n\tvWorldPos = (modelMatrix * vec4(position, 1.0)).xyz;\n\tvViewNormal = normalize(modelViewMatrix * vec4(normal, 0.0)).xyz;\n\tvViewPosition = (modelViewMatrix * vec4(position, 1.0)).xyz;\n\tvViewDir = normalize(-vViewPosition);\n\tgl_Position = (projectionMatrix * modelViewMatrix) * vec4(position, 1.0);\n}\n";
  },
  a060: function (t, e) {
    t.exports =
      "precision highp float;\nuniform sampler2D map;\nvarying vec2 vUv;\nvoid main() {\n\tvec2 uv = vUv;\n\tvec4 col = texture2D(map, uv);\n\tgl_FragColor = col;\n}\n";
  },
  a07a: function (t, e, i) {
    "use strict";
    i("64b5");
  },
  b252: function (t, e, i) {
    "use strict";
    i("f5ea");
  },
  b5b7: function (t, e, i) {
    "use strict";
    i("376d");
  },
  bb92: function (t, e, i) {
    "use strict";
    i("361e");
  },
  bca0: function (t, e, i) {
    "use strict";
    i("fc79");
  },
  c0ae: function (t, e, i) {
    "use strict";
    i("515e");
  },
  c0d9: function (t, e) {
    t.exports =
      "precision highp float;\nuniform float time;\nuniform float left;\nuniform float right;\nuniform sampler2D map;\nvarying vec2 vUv;\nvoid main() {\n\tvec2 uv = vec2(vUv.x, 1.0 - vUv.y);\n\tvec4 map = texture2D(map, uv);\n\tgl_FragColor = map;\n\tif ((uv.x < left) || (uv.x > right)) {\n\t\tgl_FragColor.a = 0.0;\n\t}\n\telse {\n\t\tgl_FragColor.a = smoothstep(left, left + 0.05, uv.x) * map.a;\n\t}\n}\n";
  },
  c6e0: function (t, e, i) {
    "use strict";
    i("14fc");
  },
  cd14: function (t, e, i) {},
  cd49: function (t, e, i) {
    "use strict";
    i.r(e);
    i("ae98");
    var s = i("2b0e"),
      o = function () {
        var t = this,
          e = t._self._c;
        t._self._setupProxy;
        return e(
          "div",
          {
            class: "app  " + (t.needRotate ? "need_rotate" : ""),
            style: { width: t.width + "px", height: t.height + "px" },
            on: { touchmove: t.onTouchMove },
          },
          [
            t.startLoad ? [e("Renderer", { ref: "renderer" })] : t._e(),
            e(
              "transition",
              { attrs: { name: "fade" } },
              [t.pageSwitch.interact ? e("InteractPage") : t._e()],
              1,
            ),
            t.pageSwitch.poster
              ? e("PosterPage", {
                  ref: "posterPage",
                  on: { again: t.onAgain, getWelfare: t.onGetWelfare },
                })
              : t._e(),
            e(
              "transition",
              { attrs: { name: "fade" } },
              [
                e("Dialog", {
                  directives: [
                    {
                      name: "show",
                      rawName: "v-show",
                      value: t.showDialog,
                      expression: "showDialog",
                    },
                  ],
                  ref: "dailog",
                  staticClass: "dialog",
                  style: {
                    pointerEvents: t.showDialog ? "all" : "none",
                    opacity: t.showDialog ? 1 : 0,
                  },
                  on: { close: t.onCloseDialog },
                }),
              ],
              1,
            ),
            e(
              "transition",
              { attrs: { name: "fade" } },
              [
                t.pageSwitch.switch
                  ? e("SwitchPage", { on: { close: t.showPosterPage } })
                  : t._e(),
              ],
              1,
            ),
            e(
              "transition",
              { attrs: { name: "fade" } },
              [
                e("Cutscene", {
                  directives: [
                    {
                      name: "show",
                      rawName: "v-show",
                      value: t.showBirdOutput || t.showDoorOutput,
                      expression: "showBirdOutput || showDoorOutput",
                    },
                  ],
                  ref: "videoSection",
                  attrs: {
                    isAutoPlay: !1,
                    videoPoster: t.videoPoster,
                    loopParam: t.showDoorOutput
                      ? t.loopParam[t.loopIndex].guiguzi
                      : t.loopParam[t.loopIndex].bird,
                  },
                  on: {
                    openBumperHarvestPage: function (e) {
                      return t.showBumperHarvestPage();
                    },
                    onStart: function (e) {
                      return t.onBirdVideoStart();
                    },
                    close: function (e) {
                      return t.closeDoor();
                    },
                  },
                }),
              ],
              1,
            ),
            e(
              "transition",
              { attrs: { name: "fade" } },
              [
                t.pageSwitch.bumperHarvest
                  ? e("BumperHarvestPage", { on: { close: t.showSwitchPage } })
                  : t._e(),
              ],
              1,
            ),
            e(
              "transition",
              { attrs: { name: "fade" } },
              [
                t.pageSwitch.cereals
                  ? e("CerealsPage", {
                      ref: "cerealsPage",
                      on: { close: t.showInteractPage },
                    })
                  : t._e(),
              ],
              1,
            ),
            t.pageSwitch.loading
              ? e("LoadingPage", { on: { load: t.onLoad } })
              : t._e(),
            t.video.show
              ? e("VideoScreen", {
                  attrs: {
                    transitions: !0,
                    videoSrc: t.video.src,
                    videoPoster: t.video.poster,
                  },
                  on: { skip: t.onSkipScene },
                })
              : t._e(),
          ],
          2,
        );
      },
      n = [],
      a = i("9ab4"),
      r = i("1b40"),
      l = function () {
        var t = this,
          e = t._self._c;
        t._self._setupProxy;
        return e(
          "div",
          { staticClass: "interact_page fullscreen" },
          [
            0 === t.chapterIndex && t.isShowTip ? e("InteractTip0") : t._e(),
            1 === t.chapterIndex && t.isShowTip ? e("InteractTip1") : t._e(),
            2 === t.chapterIndex && t.isShowTip ? e("InteractTip2") : t._e(),
          ],
          1,
        );
      },
      c = [],
      h = function () {
        var t = this,
          e = t._self._c;
        t._self._setupProxy;
        return e(
          "div",
          { staticClass: "fullscreen interact_tip0_wrapper" },
          [
            e(
              "div",
              { staticClass: "section" },
              [
                e("transition", { attrs: { name: "fade" } }, [
                  -1 == t.titleIndex
                    ? e("div", { ref: "head", staticClass: "head" })
                    : t._e(),
                ]),
                e("transition", { attrs: { name: "fade1" } }, [
                  e(
                    "div",
                    {
                      directives: [
                        {
                          name: "show",
                          rawName: "v-show",
                          value: 0 == t.titleIndex,
                          expression: "titleIndex == 0",
                        },
                      ],
                      ref: "title0",
                      staticClass: "title title0",
                      on: {
                        click: function (e) {
                          return t.openIntroduce(3);
                        },
                      },
                    },
                    [
                      e("div", {
                        directives: [
                          {
                            name: "multi-ref",
                            rawName: "v-multi-ref:icon",
                            arg: "icon",
                          },
                        ],
                        staticClass: "icon icon0",
                      }),
                      e("div", { staticClass: "content0" }),
                    ],
                  ),
                ]),
                e("transition", { attrs: { name: "fade1" } }, [
                  e(
                    "div",
                    {
                      directives: [
                        {
                          name: "show",
                          rawName: "v-show",
                          value: 1 == t.titleIndex,
                          expression: "titleIndex == 1",
                        },
                      ],
                      ref: "title1",
                      staticClass: "title title1",
                      on: {
                        click: function (e) {
                          return t.openIntroduce(0);
                        },
                      },
                    },
                    [
                      e("div", {
                        directives: [
                          {
                            name: "multi-ref",
                            rawName: "v-multi-ref:icon",
                            arg: "icon",
                          },
                        ],
                        staticClass: "icon icon1",
                      }),
                    ],
                  ),
                ]),
                e("transition", { attrs: { name: "fade1" } }, [
                  e(
                    "div",
                    {
                      directives: [
                        {
                          name: "show",
                          rawName: "v-show",
                          value: 1 == t.titleIndex,
                          expression: "titleIndex == 1",
                        },
                      ],
                      ref: "title2",
                      staticClass: "title title2",
                      on: {
                        click: function (e) {
                          return t.openIntroduce(6);
                        },
                      },
                    },
                    [
                      e("div", {
                        directives: [
                          {
                            name: "multi-ref",
                            rawName: "v-multi-ref:icon",
                            arg: "icon",
                          },
                        ],
                        staticClass: "icon icon2",
                      }),
                    ],
                  ),
                ]),
                e("transition", { attrs: { name: "fade1" } }, [
                  e(
                    "div",
                    {
                      directives: [
                        {
                          name: "show",
                          rawName: "v-show",
                          value: 2 == t.titleIndex,
                          expression: "titleIndex == 2",
                        },
                      ],
                      ref: "title3",
                      staticClass: "title title3",
                      on: {
                        click: function (e) {
                          return t.openIntroduce(7);
                        },
                      },
                    },
                    [
                      e("div", {
                        directives: [
                          {
                            name: "multi-ref",
                            rawName: "v-multi-ref:icon",
                            arg: "icon",
                          },
                        ],
                        staticClass: "icon icon3",
                      }),
                    ],
                  ),
                ]),
                e("div", { staticClass: "big" }, [
                  t.interactEnd || t.showFragments
                    ? t._e()
                    : e(
                        "div",
                        {
                          ref: "tip",
                          staticClass: "tip_container",
                          class: t.tablet
                            ? "tip_container_tablet" + t.farmingIndex
                            : "tip_container" + t.farmingIndex,
                        },
                        [
                          e("div", { ref: "text", staticClass: "tip_text" }, [
                            t._v(t._s(t.tip_text)),
                          ]),
                          e(
                            "div",
                            {
                              ref: "circleWrapper",
                              staticClass: "circle_wrapper",
                            },
                            [
                              e(
                                "svg",
                                {
                                  attrs: {
                                    id: "svg",
                                    width: "100%",
                                    height: "100%",
                                    version: "1.1",
                                    xmlns: "http://www.w3.org/2000/svg",
                                  },
                                },
                                [
                                  e(
                                    "filter",
                                    {
                                      attrs: {
                                        id: "f1",
                                        x: "-10%",
                                        y: "-10%",
                                        width: "200%",
                                        height: "200%",
                                      },
                                    },
                                    [
                                      e("feOffset", {
                                        attrs: {
                                          result: "offOut",
                                          in: "SourceGraphic",
                                          dx: "2",
                                          dy: "2",
                                        },
                                      }),
                                      e("feColorMatrix", {
                                        attrs: {
                                          result: "matrixOut",
                                          in: "offOut",
                                          type: "matrix",
                                          values:
                                            "0.2 0 0 0 0 0 0.2 0 0 0 0 0 0.2 0 0 0 0 0 1 0",
                                        },
                                      }),
                                      e("feGaussianBlur", {
                                        attrs: {
                                          result: "blurOut",
                                          in: "matrixOut",
                                          stdDeviation: "5",
                                        },
                                      }),
                                      e("feBlend", {
                                        attrs: {
                                          in: "SourceGraphic",
                                          in2: "blurOut",
                                          mode: "normal",
                                        },
                                      }),
                                    ],
                                    1,
                                  ),
                                  e("circle", {
                                    style: `\n                fill:transparent;\n                stroke: #ffffff;\n                stroke-dasharray: 1%,12.5%;\n                stroke-linecap:round;\n                stroke-width: ${4 / t.scale.value};`,
                                    attrs: {
                                      cx: "50%",
                                      cy: "50%",
                                      r: "30%",
                                      filter: "url(#f1)",
                                    },
                                  }),
                                ],
                              ),
                            ],
                          ),
                        ],
                      ),
                ]),
                e("div", { staticClass: "desc" }),
                e(
                  "div",
                  {
                    staticClass: "close_wrapper",
                    on: {
                      click: function (e) {
                        return t.nextBtn();
                      },
                    },
                  },
                  [e("div", { staticClass: "close_bt" })],
                ),
                t._m(0),
                e("Fragments", { attrs: { light: t.light } }),
              ],
              1,
            ),
            t.isIntroduceShow
              ? e("Introduce", {
                  attrs: { index: t.introduceIndex },
                  on: {
                    close: function (e) {
                      return t.closeIntroduce();
                    },
                  },
                })
              : t._e(),
            t.showFragments
              ? e("GetFragments", { attrs: { index: 0 } })
              : t._e(),
          ],
          1,
        );
      },
      d = [
        function () {
          var t = this,
            e = t._self._c;
          t._self._setupProxy;
          return e("div", { staticClass: "button-icon_wrapper" }, [
            e("div", { staticClass: "button-icon" }),
          ]);
        },
      ],
      u = i("cffa"),
      p = function () {
        var t = this,
          e = t._self._c;
        t._self._setupProxy;
        return e("div", { staticClass: "fragments_wrapper" }, [
          2 != t.index
            ? e("div", {
                staticClass: "fragments2",
                class: t.light[2] ? "light" : "",
              })
            : t._e(),
          1 != t.index
            ? e("div", {
                staticClass: "fragments1",
                class: t.light[1] ? "light" : "",
              })
            : t._e(),
          0 != t.index
            ? e("div", {
                staticClass: "fragments0",
                class: t.light[0] ? "light" : "",
              })
            : t._e(),
        ]);
      },
      m = [];
    let f = class extends r["c"] {};
    (Object(a["a"])(
      [Object(r["b"])({ default: [!1, !1, !1] })],
      f.prototype,
      "light",
      void 0,
    ),
      Object(a["a"])(
        [Object(r["b"])({ default: -1 })],
        f.prototype,
        "index",
        void 0,
      ),
      (f = Object(a["a"])([Object(r["a"])({ components: {} })], f)));
    var g = f,
      v = g,
      w = (i("f395"), i("2877")),
      y = Object(w["a"])(v, p, m, !1, null, "6a0e6f5c", null),
      x = y.exports,
      b = function () {
        var t = this,
          e = t._self._c;
        t._self._setupProxy;
        return e("div", { staticClass: "getFragments fullscreen" }, [
          e("div", { ref: "background", staticClass: "background" }),
          e(
            "div",
            { ref: "fragmentsWrapper", staticClass: "fragments_wrapper" },
            [
              e("div", { staticClass: "light_wrapper" }, [
                e("div", {
                  ref: "light",
                  staticClass: "light",
                  class: "light" + t.index,
                }),
              ]),
              e(
                "div",
                {
                  ref: "fragments",
                  staticClass: "fragments fragments_anim",
                  class: "fragments" + t.index,
                  on: {
                    click: function (e) {
                      return t.openVideo();
                    },
                  },
                },
                [
                  e(
                    "div",
                    {
                      ref: "button",
                      staticClass: "button-icon_wrapper",
                      class: "icon" + t.index,
                    },
                    [e("div", { staticClass: "button-icon" })],
                  ),
                ],
              ),
            ],
          ),
          e("div", { ref: "desc", staticClass: "desc_wrapper" }, [
            e("div", { staticClass: "left" }),
            e("div", { staticClass: "content" }, [t._v(t._s(t.desc))]),
            e("div", { staticClass: "right" }),
          ]),
        ]);
      },
      P = [],
      T = i("2f62"),
      _ = i("2b80"),
      S = i.n(_);
    function C() {
      return !/(iPhone|iPad|iPod|iOS|Android)/i.test(navigator.userAgent);
    }
    function k() {
      return; // Blackhole
      const t = ulink.isWxApp(),
        e = ulink.isQQApp();
      return t || e;
    }
    function I() {
      if (/iP(hone|od|ad)/.test(navigator.platform)) {
        var t = navigator.appVersion.match(/OS (\d+)_(\d+)_?(\d+)?/);
        return (
          console.log("iOsversion: ", parseInt(t[1], 10)),
          parseInt(t[1], 10)
        );
      }
      return -1;
    }
    function M(t) {
      var e = new S.a();
      const i = e.getResult(),
        s = !!navigator.userAgent.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/);
      let o = "qq" == t || "wechat" == t || ("camp" == t && !s);
      return (
        o &&
          i.device.model &&
          "iphone" === i.device.model.toLowerCase() &&
          "6+" === O() &&
          (o = !1),
        o
      );
    }
    function O() {
      var t = window.screen.height,
        e = window.screen.width;
      return 414 === e && 896 === t
        ? "Xmax-Xr"
        : 375 === e && 812 === t
          ? "X-Xs"
          : 320 === e && 480 === t
            ? "4"
            : 375 === e && 667 === t
              ? "6"
              : 414 === e && 736 === t
                ? "6+"
                : 320 === e && 568 === t
                  ? "5"
                  : t <= 480
                    ? "2-3"
                    : "none";
    }
    function F() {
      const t = navigator.userAgent;
      if (t.indexOf("iPad") > -1) return !0;
      var e = new S.a();
      const i = e.getResult();
      return !(
        !i.device.model ||
        "iphone" !== i.device.model.toLowerCase() ||
        ("5" !== O() && "6" !== O())
      );
    }
    s["default"].use(T["a"]);
    var A = new T["a"].Store({
        state: {
          highVersion: !1,
          lowVersion: F(),
          iosVersion: I(),
          needRotate: window.innerWidth < window.innerHeight,
          isDEV: !1,
          hmsr: "",
          id: "",
          enablePoster: k(),
          isPC: C(),
          isWindowsPhone: !1,
          isSymbian: !1,
          isAndroid: !1,
          isFireFox: !1,
          isChrome: !1,
          isTablet: !1,
          isPhone: !1,
          isMobile: !1,
          isSafari: !1,
          startLoad: !0,
          load: { resource: {} },
          user: { avatar: "", username: "恭喜您" },
          pageSwitch: {
            loading: !0,
            openning: !0,
            interact: !1,
            cereals: !1,
            bumperHarvest: !1,
            login: !1,
            switch: !1,
            poster: !1,
          },
          posterIndex: 0,
          interactChapterIndex: -1,
          hasInteract: [!1, !1, !1],
          hasAnim: [!1, !1, !1],
          farmingIndex: 0,
          farmingTitleIndex: -1,
          irrigationIndex: 0,
          harvestIndex: 0,
          currentSceneName: "farming",
          savedPosterBase64: "",
          guessText: [],
          clueText: [],
          guessHero: "",
          hasGetWelfare: !1,
          video: { show: !1, index: 0, src: "", poster: "" },
          interactTip0distance: 0,
        },
        getters: {
          loadProgress: (t) => {
            let e = 0,
              i = 0;
            const s = Object.keys(t.load.resource);
            if (0 === s.length) return 0;
            for (let o = 0; o < s.length; o++)
              ((e += 1), (i += t.load.resource[s[o]]), t.load.resource[s[o]]);
            return i / e;
          },
        },
        mutations: {
          UpdateResLoadProgress(t, e) {
            s["default"].set(t.load.resource, e.id, e.progress);
          },
          UpdatePageSwitch(t, e) {
            s["default"].set(t.pageSwitch, e.pageName, e.enabled);
          },
          updateQuestionsController(t, e) {
            s["default"].set(t, "questionsController", e);
          },
          init(t, e) {
            var i = navigator.userAgent;
            ((t.isWindowsPhone = /(?:Windows Phone)/.test(i)),
              (t.isSymbian = /(?:SymbianOS)/.test(i) || t.isWindowsPhone),
              (t.isAndroid = /(?:Android)/.test(i)),
              (t.isFireFox = /(?:Firefox)/.test(i)),
              (t.isChrome = /(?:Chrome|CriOS)/.test(i)),
              (t.isTablet =
                /(?:iPad|PlayBook)/.test(i) ||
                (t.isAndroid && !/(?:Mobile)/.test(i)) ||
                (t.isFireFox && /(?:Tablet)/.test(i)) ||
                ("MacIntel" === navigator.platform &&
                  navigator.maxTouchPoints > 1)),
              (t.isPhone = /(?:iPhone)/.test(i) && !t.isTablet),
              (t.isMobile = t.isAndroid || t.isPhone),
              (t.isSafari =
                !!navigator.userAgent.match(/Safari/i) &&
                !navigator.userAgent.match(/Chrome/i)));
          },
          setUsernameCommit(t, e) {
            t.user.username = e;
          },
          setAvatarCommit(t, e) {
            t.user.avatar = e;
          },
          setNeedRotate(t, e) {
            t.needRotate = e;
          },
          setChapter(t, e) {
            t.interactChapterIndex = e;
          },
          setStartLoad(t, e) {
            t.startLoad = e;
          },
          setHasInteract(t, e) {
            s["default"].set(t.hasInteract, e.index, e.flag);
          },
          setHasAnim(t, e) {
            s["default"].set(t.hasAnim, e.index, e.flag);
          },
          resetHasInteract(t) {
            for (let e = 0; e < t.hasInteract.length; e++)
              s["default"].set(t.hasInteract, e, !1);
          },
          setFarmingIndex(t, e) {
            t.farmingIndex = e;
          },
          setFarmingTitleIndex(t, e) {
            t.farmingTitleIndex = e;
          },
          setIrrigationIndex(t, e) {
            t.irrigationIndex = e;
          },
          setHarvestIndex(t, e) {
            t.harvestIndex = e;
          },
          setCurrentSceneName(t, e) {
            t.currentSceneName = e;
          },
          setPosterBase64(t, e) {
            t.savedPosterBase64 = e;
          },
          setGuessText(t, e) {
            t.guessText = e;
          },
          setGuessHero(t, e) {
            t.guessHero = e;
          },
          setClueText(t, e) {
            t.clueText = e;
          },
          setHasGetWelfare(t, e) {
            t.hasGetWelfare = e;
          },
          setPosterIndex(t, e) {
            t.posterIndex = e;
          },
          openVideo(t, e) {
            ((t.video.show = !0), (t.video.index = e));
            let i = "";
            switch (e) {
              case 0:
                i = t.isDEV
                  ? "media/1.mp4"
                  : window.skillShow0Src;
                break;
              case 1:
                i = t.isDEV
                  ? "media/2.mp4"
                  : window.skillShow1Src;
                break;
              case 2:
                i = t.isDEV
                  ? "media/3.mp4"
                  : window.skillShow2Src;
                break;
            }
            ((t.video.src = i), (t.video.poster = i));
          },
          closeVideo(t) {
            t.video.show = !1;
          },
          setInteractTip0distance(t, e) {
            t.interactTip0distance = e;
          },
          setEnv(t, e) {
            t.enablePoster = M(e);
          },
        },
        actions: {},
        modules: {},
      }),
      E = i("5a89");
    function j(t, e, i) {
      let s = !1;
      return (
        t > e && (([t, e] = [e, t]), (s = !0)),
        s ? 1 - E["M"].smootherstep(i, t, e) : E["M"].smootherstep(i, t, e)
      );
    }
    function $(t, e) {
      return ((t % e) + e) % e;
    }
    function z(t) {
      return 0 === t ? 0 : Math.pow(2, 10 * t - 10);
    }
    function D(t, e) {
      return t + (e - t) * Math.random();
    }
    function L(t, e, i) {
      if (typeof window !== "undefined" && window.PTTSendClick && !A.state.isDEV)
        try {
          window.PTTSendClick(t, e, i);
        } catch (s) {
          console.warn(s);
        }
    }
    function V(t) {
      return t.sort((t, e) => {
        const i = t.name.split("-"),
          s = e.name.split("-"),
          o = parseInt(i[i.length - 1]),
          n = parseInt(s[s.length - 1]);
        return o - n;
      });
    }
    function W(t) {
      for (
        var e = window.location.search.substring(1), i = e.split("&"), s = 0;
        s < i.length;
        s++
      ) {
        var o = i[s].split("=");
        if (o[0] == t) return o[1];
      }
      return !1;
    }
    function U(t, e) {
      let i = t.split("?")[0] + "?",
        s = t.split("?")[1];
      if (s.indexOf(e) > -1) {
        let t = {},
          o = s.split("&");
        for (let e = 0; e < o.length; e++)
          ((o[e] = o[e].split("=")), (t[o[e][0]] = o[e][1]));
        delete t[e];
        let n =
          i +
          JSON.stringify(t)
            .replace(/[\"\{\}]/g, "")
            .replace(/\:/g, "=")
            .replace(/\,/g, "&");
        return n;
      }
      return t;
    }
    var N = i("1e5c");
    class B {
      constructor() {
        ((this.prefix =
          "media/"),
          (this.hasLoad = {}),
          (this.loadConfig = {}),
          (this.config = [
            {
              key: "bgm",
              preload: !0,
              unique: !0,
              loop: !0,
              autoplay: !0,
              mute: !1,
              usingWebAudio: !1,
              html5: !0,
              webAudio: !1,
              volume: 1,
            },
            { key: "rain", preload: !0, unique: !0, loop: !0 },
            { key: "bling", preload: !0 },
            { key: "flyBling", preload: !0 },
            { key: "click", preload: !0 },
            { key: "click2", preload: !0 },
            { key: "cow", preload: !0 },
            { key: "cut", preload: !0, limitIntervalTime: 1 },
            { key: "rotate", preload: !0, limitIntervalTime: 1 },
            { key: "stone", preload: !0, limitIntervalTime: 1 },
            { key: "success", preload: !0 },
          ]),
          (this.sound = {}),
          (this.uniqueMap = {}),
          (this.lastPlayTime = {}),
          (this.tempPauseList = []));
        for (let t = 0; t < this.config.length; t++) {
          let e = this.config[t],
            i = e.key,
            s = this.prefix + (i + ".mp3");
          ((this.sound[i] = new N["Howl"]({
            src: [s],
            loop: void 0 !== e.loop && e.loop,
            volume: void 0 !== e.volume ? e.volume : 1,
            autoplay: void 0 !== e.autoPlay && e.autoPlay,
            preload: void 0 !== e.preload && e.autoPlay,
            usingWebAudio: e.usingWebAudio,
            html5: e.html5,
            webAudio: e.webAudio,
            mute: void 0 !== e.mute && e.mute,
          })),
            e.unique && (this.uniqueMap[i] = { id: void 0 }),
            e.limitIntervalTime &&
              (this.lastPlayTime[i] = {
                lastTime: 0,
                limitIntervalTime: e.limitIntervalTime,
              }));
        }
        window.addEventListener("visibilitychange", () => {
          document.hidden ? this.pauseAllSound() : this.resumeAllSound();
        });
      }
      pauseAllSound() {
        const t = Object.keys(this.sound);
        ((this.tempPauseList = []),
          t.forEach((t) => {
            const e = this.sound[t];
            e.playing() && (this.tempPauseList.push(t), e.pause());
          }));
      }
      resumeAllSound() {
        this.tempPauseList.forEach((t) => {
          const e = this.sound[t];
          e.play();
        });
      }
      load(t) {
        if (this.hasLoad[t]) return;
        const e = this.loadConfig[t];
        (e &&
          e.forEach((t) => {
            var e;
            null === (e = this.sound[t]) || void 0 === e || e.load();
          }),
          (this.hasLoad[t] = !0));
      }
      unload(t) {
        if (!this.hasLoad[t]) return;
        const e = this.loadConfig[t];
        (e &&
          e.forEach((t) => {
            var e;
            null === (e = this.sound[t]) || void 0 === e || e.unload();
          }),
          (this.hasLoad[t] = !1));
      }
      isUnique(t) {
        return !!this.uniqueMap[t];
      }
      getId(t) {
        const e = this.isUnique(t);
        return e ? this.uniqueMap[t].id : void 0;
      }
      play(t, e = 0) {
        if (this.sound.hasOwnProperty(t)) {
          const i = this.sound[t],
            s = this.isUnique(t),
            o = this.getId(t);
          if (this.lastPlayTime[t]) {
            const e = this.lastPlayTime[t].lastTime,
              i = new Date().getTime();
            if (i - e < 1e3 * this.lastPlayTime[t].limitIntervalTime) return;
            this.lastPlayTime[t].lastTime = i;
          }
          (i.playing(o) && "bgm" === t
            ? this.pause(t)
            : i.playing(o) && this.stop(t),
            e >= 0 && i.seek(e));
          const n = i.play(o);
          s && void 0 === o && (this.uniqueMap[t].id = n);
        }
      }
      playing(t) {
        if (this.sound.hasOwnProperty(t)) {
          const e = this.sound[t];
          this.getId(t);
          return e.playing();
        }
        return !1;
      }
      volume(t, e) {
        this.sound.hasOwnProperty(t) && this.sound[t].volume(e);
      }
      fadeIn(t) {
        if (this.sound.hasOwnProperty(t)) {
          const e = this.sound[t],
            i = this.getId(t);
          if (e.playing(i)) return;
          (e.fade(0, 1, 1e3, i), this.play(t));
        }
      }
      getCurrentTime(t) {
        if (this.sound.hasOwnProperty(t)) {
          const e = this.sound[t];
          this.getId(t);
          return e.seek();
        }
        return 0;
      }
      getDuration(t) {
        if (this.sound.hasOwnProperty(t)) {
          const e = this.sound[t],
            i = this.getId(t);
          return e.duration(i);
        }
        return 0;
      }
      pause(t) {
        if (this.sound.hasOwnProperty(t)) {
          const e = this.sound[t],
            i = this.getId(t);
          e.pause(i);
        }
      }
      stop(t) {
        if (this.sound.hasOwnProperty(t)) {
          const e = this.sound[t],
            i = this.getId(t);
          e.stop(i);
        }
      }
      setEnabled(t) {
        t ? N["Howler"].volume(1) : N["Howler"].volume(0);
      }
    }
    const R = new B();
    var H = R;
    let q = class extends r["c"] {
      constructor() {
        (super(...arguments), (this.desc = "获取丰收碎片 解锁技能展示"));
      }
      mounted() {
        this.anim();
      }
      openVideo() {
        (H.play("click"),
          this.$store.commit("openVideo", this.index),
          L("btn", "openVideo", "播放技能视频-" + this.index));
      }
      anim() {
        const t = u["a"].timeline();
        (t.addLabel("start"),
          t.fromTo(this.$refs.background, { opacity: 0 }, { opacity: 1 }),
          t
            .fromTo(
              [this.$refs.light],
              { scale: 0, opacity: 0 },
              {
                scale: 1,
                opacity: 1,
                onStart: () => {
                  H.play("success");
                },
              },
              "-=0.5",
            )
            .to([this.$refs.light], {
              duration: 1,
              opacity: 0.7,
              repeat: -1,
              stagger: 0.5,
              yoyo: !0,
            })
            .to(
              [this.$refs.light],
              { rotate: "360deg", duration: 30, ease: "none", repeat: -1 },
              "start",
            ));
        const e = this.$refs.desc,
          i = this.$refs.fragments,
          s = { a: 50 };
        let o = 0;
        const n = [D(0.3, 0.7), D(0.3, 0.7), D(0.3, 0.7), D(0.3, 0.7)];
        let a = 0,
          r = 0;
        t.fromTo(
          i,
          { scale: 0, opacity: 0 },
          { scale: 1, opacity: 1, ease: "back.out(3)" },
          "start",
        )
          .fromTo(
            s,
            { a: 50 },
            {
              a: 100,
              ease: "back.out(3)",
              duration: 2,
              onUpdate: () => {
                i.style.filter = `brightness(${s.a}%)`;
              },
            },
            "<+=0.5",
          )
          .fromTo(e, { opacity: 0 }, { opacity: 1 }, "<")
          .to(this.$refs.fragmentsWrapper, {
            repeat: -1,
            yoyo: !0,
            duration: 2,
            onUpdate: () => {
              ((o += 1),
                (a += 0.05 * Math.cos(o * n[0] * 0.05 + 0.1 * n[1])),
                (r += 0.05 * Math.cos(o * n[2] * 0.05 + 0.1 * n[3])),
                (i.style.transform = `translate(${a}px,${r}px)`));
            },
          })
          .to(e, {
            opacity: 0.7,
            repeat: -1,
            duration: 2,
            yoyo: !0,
            ease: "power3.in",
          });
        const l = this.$refs.button;
        t.to({}, { duration: 1 })
          .to(l, { opacity: 1, duration: 0.7 }, "start")
          .fromTo(
            l,
            { opacity: 0.7 },
            { opacity: 1, scale: 1.1, repeat: -1, yoyo: !0 },
          );
      }
    };
    (Object(a["a"])(
      [Object(r["b"])({ default: 0 })],
      q.prototype,
      "index",
      void 0,
    ),
      (q = Object(a["a"])([Object(r["a"])({ components: {} })], q)));
    var Y = q,
      G = Y,
      X = (i("3a18"), Object(w["a"])(G, b, P, !1, null, "5afea9f3", null)),
      Q = X.exports,
      J = function () {
        var t = this,
          e = t._self._c;
        t._self._setupProxy;
        return e("div", { staticClass: "introduce_wrapper fullscreen" }, [
          e("div", {
            ref: "background",
            staticClass: "background fullscreen",
            on: {
              click: function (e) {
                return t.close();
              },
            },
          }),
          e("div", { ref: "windowWrapper", staticClass: "window_wrapper" }, [
            e("div", {
              directives: [
                {
                  name: "multi-ref",
                  rawName: "v-multi-ref:cloud",
                  arg: "cloud",
                },
              ],
              staticClass: "cloud cloud_left",
            }),
            e("div", {
              directives: [
                {
                  name: "multi-ref",
                  rawName: "v-multi-ref:cloud",
                  arg: "cloud",
                },
              ],
              staticClass: "cloud cloud_right",
            }),
            e("div", { ref: "bird1", staticClass: "bird bird_top" }),
            e("div", { ref: "bird2", staticClass: "bird bird_bottom" }),
            e("button", {
              ref: "close_bt",
              staticClass: "close_bt button_anim",
              on: {
                click: function (e) {
                  return t.close();
                },
              },
            }),
            e("div", {
              ref: "prop",
              staticClass: "prop prop_anim",
              class: "prop" + t.index,
            }),
            e("div", { staticClass: "text_wrapper", class: "text" + t.index }, [
              e("div", { staticClass: "title" }, [
                t._v(t._s(t.titles[t.index])),
              ]),
              e("div", { staticClass: "border" }),
              t.isScroll
                ? e(
                    "div",
                    {
                      ref: "contentWrapper",
                      staticClass: "content_wrapper scrollbar",
                      on: {
                        pointerdown: t.gPointerdown,
                        pointermove: t.gPointermove,
                        pointerup: t.gPointerup,
                      },
                    },
                    [
                      e("div", {
                        ref: "content",
                        staticClass: "content",
                        domProps: { innerHTML: t._s(t.contents[t.index]) },
                      }),
                      e(
                        "div",
                        {
                          ref: "progressWrapper",
                          staticClass: "progress_wrapper",
                        },
                        [
                          e("div", {
                            ref: "progress",
                            staticClass: "progress",
                          }),
                        ],
                      ),
                    ],
                  )
                : e(
                    "div",
                    { ref: "contentWrapper", staticClass: "content_wrapper" },
                    [
                      e("div", {
                        ref: "content",
                        staticClass: "content",
                        domProps: { innerHTML: t._s(t.contents[t.index]) },
                      }),
                    ],
                  ),
            ]),
          ]),
          e("div", { staticClass: "content_is" }, [
            e(
              "div",
              { ref: "contentWrapperHeight", staticClass: "content_wrapper" },
              [
                e("div", {
                  ref: "contentHeight",
                  staticClass: "content",
                  domProps: { innerHTML: t._s(t.contents[t.index]) },
                }),
              ],
            ),
          ]),
        ]);
      },
      K = [];
    let Z = class extends r["c"] {
      constructor() {
        (super(...arguments),
          (this.titles = [
            "法杖顶端",
            "披风",
            "头发",
            "牛角面具",
            "肩饰",
            "整体服饰",
            "法杖末端",
            "牛耕鞋",
          ]),
          (this.contents = [
            "在法杖的顶端，是一只栩栩如生的丹雀，他围绕着日精的能量，象征着五谷的起源——丹雀衔五穗，人间始丰登。",
            "在披风的设计上，将山川、河流等农耕自然意象融入设计中。寓意身披地大物博的山川湖海，也祈愿这丰饶大地能够风调雨顺、年丰岁稔。",
            "在头发的设计上融入了火的元素，这源自我们文明起源的火神谱系。火对古农业的影响深远，是种植与能量的转化。也代表了先民们刀耕火种的农耕方式。",
            "面具采用了牛角的图案。传说，一位神灵驯服了耕牛，我们才能够借助畜力进行五谷耕种。牛角面具象征着力量，也代表神灵的祝福。",
            "在肩饰的设计上，运用了水稻的元素，水稻在胸口汇聚成甘霖形态的珠串，寓意着雨生百谷，润泽万物的自然之力。",
            "在整体服饰设计上，以对称性的造型来塑造并强调与神灵沟通的仪式感。将五谷丰登的“丰”字进行了重新编码，同时把稻谷作为五谷文化元素的代表，结合蔽膝、流苏穗子等服饰元素，进行解构重组设计。<br/>服饰上的各类装饰元素，都是各类自然元素的汇集，体现了粮食作为生命起源的寓意，也象征了对“五谷丰登”的美好祈愿。",
            "法杖的末端，设计成了耒耜的造型。执耒耜，授耕种 ——相传神农发明耒耜，用于翻整土地、播种庄稼，从此生产力大幅度提升。<br/>丹雀衔谷与神农耒耜的结合，寓意着自然之力与人的价值的结合，万物生长是集天地之造化，更离不开农人的付出。",
            "在鞋子设计上，融入了耕牛的造型进行点缀。寓意着我们能察天时，用地利，在广袤大地上无畏探索与前行。",
          ]),
          (this.isScroll = !1),
          (this.scorllY = 0),
          (this.lastY = 0),
          (this.isInteract = !1));
      }
      mounted() {
        this.anim();
        const t = this.$refs.contentHeight,
          e = this.$refs.contentWrapperHeight;
        (console.log("11:", t.offsetHeight, e.offsetHeight),
          t.offsetHeight > e.offsetHeight && (this.isScroll = !0));
      }
      anim() {
        let [t, e, i, s, o] = [0, 0, 0, 0, 0];
        const n = [D(0.3, 0.6), D(0.3, 0.6), D(0.3, 0.6), D(0.3, 0.6)];
        this.timeline = u["a"].timeline();
        const a = this.$refs.prop;
        console.log("prop: ", a);
        const r = this.$refs.cloud,
          l = this.$refs.windowWrapper;
        (this.timeline.addLabel("start"),
          this.timeline
            .fromTo(
              l,
              { y: 100, opacity: 0 },
              { y: 0, opacity: 1, ease: "power3.out" },
            )
            .fromTo(
              this.$refs.background,
              { opacity: 0 },
              { opacity: 1 },
              "start",
            )
            .to(
              r,
              { opacity: 0.3, repeat: -1, stagger: 0.3, yoyo: !0, duration: 2 },
              "start",
            )
            .to(
              a,
              {
                repeat: -1,
                yoyo: !0,
                duration: 2,
                onUpdate: () => {
                  ((t += 1),
                    (s += 0.1 * Math.cos(t * n[0] * 0.05 + 0.1 * n[1])),
                    (o += 0.1 * Math.cos(t * n[2] * 0.05 + 0.1 * n[3])),
                    (a.style.transform = `translate3d(${s}px,${o}px,0)`));
                },
                onComplete: () => {},
              },
              "start",
            ));
      }
      close() {
        H.play("click");
        const t = this.$refs.windowWrapper,
          e = u["a"].timeline();
        e.fromTo(
          t,
          { y: 0, opacity: 1 },
          {
            y: 100,
            opacity: 0,
            ease: "power3.out",
            onComplete: () => {
              this.$emit("close");
            },
          },
        ).fromTo(this.$refs.background, { opacity: 1 }, { opacity: 0 }, "<");
      }
      get needRotate() {
        return this.$store.state.needRotate;
      }
      getScreenPos(t) {
        const e = new E["Eb"]();
        return (
          this.needRotate
            ? ((e.x = t.pageY), (e.y = -t.pageX))
            : ((e.x = t.pageX), (e.y = t.pageY)),
          e
        );
      }
      get contentWrapper() {
        return this.$refs.contentWrapper;
      }
      get content() {
        return this.$refs.content;
      }
      gPointerdown(t) {
        ((this.isInteract = !0), (this.lastY = this.getScreenPos(t).y));
      }
      gPointermove(t) {
        if (!this.isInteract && (this.index < 5 || this.index > 6)) return;
        const e = {
            x: this.contentWrapper.clientWidth,
            y: this.contentWrapper.clientHeight,
          },
          i = { x: this.content.clientWidth, y: this.content.clientHeight },
          s = this.getScreenPos(t).y;
        let o = this.scorllY;
        o += (s - this.lastY) / 3;
        const n = i.y - e.y;
        this.scorllY = o < -n ? -n : o > 0 ? 0 : o;
        const a = this.$refs.progressWrapper.clientHeight,
          r = Math.min(a - a / 4, j(0, -n, this.scorllY) * (a - a / 4));
        ((this.$refs.progress.style.marginTop = r + "px"),
          (this.content.style.marginTop = this.scorllY + "px"),
          (this.lastY = s));
      }
      gPointerup(t) {
        this.isInteract = !1;
      }
      destroyed() {
        this.scorllY = 0;
      }
    };
    (Object(a["a"])(
      [Object(r["b"])({ default: 0 })],
      Z.prototype,
      "index",
      void 0,
    ),
      (Z = Object(a["a"])([Object(r["a"])({ components: {} })], Z)));
    var tt = Z,
      et = tt,
      it = (i("64bc"), Object(w["a"])(et, J, K, !1, null, "2c5384fa", null)),
      st = it.exports,
      ot = function () {
        var t = this,
          e = t._self._c;
        t._self._setupProxy;
        return e(
          "div",
          { ref: "videoWrapper", staticClass: "video_wrapper fullscreen" },
          [
            e("video", {
              ref: "video",
              staticClass: "fullscreen video",
              style: { pointerEvents: t.isShowPrelude ? "all" : "none" },
              attrs: {
                src: t.videoSrc,
                width: "1332",
                height: "750",
                preload: "auto",
                playsinline: "true",
                "webkit-playsinline": "true",
                "x5-video-player-type": "h5",
                "x5-video-orientation": "portraint",
                "x5-video-player-fullscreen": "false",
                airplay: "allow",
                "x-webkit-airplay": "allow",
                poster: t.videoPoster,
              },
            }),
            e("div", {
              directives: [
                {
                  name: "show",
                  rawName: "v-show",
                  value: t.videoStart,
                  expression: "videoStart",
                },
              ],
              ref: "background",
              staticClass: "background fullscreen",
              on: {
                click: function (e) {
                  return t.onClick();
                },
              },
            }),
            e(
              "div",
              {
                directives: [
                  {
                    name: "show",
                    rawName: "v-show",
                    value: t.videoStart,
                    expression: "videoStart",
                  },
                ],
                ref: "control",
                staticClass: "control_wrapper",
              },
              [
                e(
                  "div",
                  {
                    ref: "playBt",
                    staticClass: "play_bt_wrapper",
                    on: {
                      click: function (e) {
                        return t.onClick();
                      },
                    },
                  },
                  [
                    e("div", { staticClass: "circle circle_anim" }),
                    e("div", { staticClass: "play_bt" }),
                  ],
                ),
                e(
                  "div",
                  { ref: "progressWrapper", staticClass: "progress_wrapper" },
                  [
                    e("div", { staticClass: "time_wrapper_start text" }, [
                      t._v(t._s(t.startTimeFormat)),
                    ]),
                    e("div", { staticClass: "progress_line" }, [
                      e("div", {
                        staticClass: "line_start",
                        style: `width:${100 * t.progressTarget}%`,
                      }),
                      e("div", { staticClass: "icon" }),
                      e("div", {
                        staticClass: "line_end",
                        style: `width:${100 - 100 * t.progressTarget}%`,
                      }),
                    ]),
                    e("div", { staticClass: "time_wrapper_end text" }, [
                      t._v(t._s(t.endTimeFormat)),
                    ]),
                  ],
                ),
                e(
                  "div",
                  {
                    staticClass: "close_wrapper",
                    on: {
                      click: function (e) {
                        return t.closeVideoBtn();
                      },
                    },
                  },
                  [
                    e("div", {
                      staticClass: "close_bt",
                      class: t.transitions ? "transitions" : "",
                    }),
                  ],
                ),
              ],
            ),
          ],
        );
      },
      nt = [];
    let at = class extends r["c"] {
      constructor() {
        (super(...arguments),
          (this.closeText = this.transitions ? "跳过" : "关闭"),
          (this.isShowPrelude = !1),
          (this.isDEV = !0),
          (this.isPlay = !1),
          (this.videoStart = !0),
          (this.time = 0),
          (this.totalTime = 0),
          (this.endTimeFormat = this.formatTime(0)),
          (this.progress = 0),
          (this.progressTarget = 0),
          (this.timer = 0),
          (this.first = !0));
      }
      get video() {
        return this.$refs.video;
      }
      get startTimeFormat() {
        return this.formatTime(this.time);
      }
      formatTime(t) {
        const e = Math.floor(t / 60),
          i = Math.floor(t - 60 * e);
        let s = "" + e,
          o = "" + i;
        return (i < 10 && (o = "0" + i), e < 10 && (s = "0" + s), s + ":" + o);
      }
      mounted() {
        (this.initVideo(),
          this.initAnim(),
          this.initListener(),
          setTimeout(() => {
            this.play();
          }, 1e3),
          this.play(),
          this.initTimeline());
      }
      initAnim() {
        const t = u["a"].timeline();
        t.fromTo(
          this.$refs.videoWrapper,
          { opacity: 0 },
          { opacity: 1 },
        ).fromTo(this.$refs.control, { opacity: 0 }, { opacity: 1 });
      }
      initTimeline() {
        ((this.timeLine = u["a"].timeline({ paused: !0 })),
          this.timeLine
            .fromTo(
              this.$refs.playBt,
              { opacity: 0 },
              { opacity: 1, ease: "power3.out" },
            )
            .fromTo(this.$refs.background, { opacity: 0 }, { opacity: 1 }, "<"),
          this.timeLine.progress(0));
      }
      onClick() {
        this.isPlay
          ? (this.timeLine.play(), this.pause())
          : (this.timeLine.reverse(), this.play());
      }
      initListener() {
        ((this.video.onloadedmetadata = () => {
          ((this.totalTime = this.video.duration),
            (this.endTimeFormat = this.formatTime(this.totalTime)));
        }),
          (this.timer = setInterval(() => {
            this.video.currentTime > 0 &&
              ((this.time = this.video.currentTime),
              (this.progress = this.time / this.totalTime),
              (this.progressTarget = this.time / this.totalTime));
          }, 16)));
      }
      initVideo() {
        this.player = new MMD.VideoPlayer({
          videoElement: this.video,
          src: this.videoSrc,
          loop: !1,
          muted: !1,
          tryMultipleVideoPlayAtTheSameTime: !1,
          timesParam: [],
          onTimes: (t) => {},
          onStart: () => {
            ((this.videoStart = !0), H.pause("bgm"));
          },
          onEnd: () => {
            (console.log("video end"), this.closeVideo());
          },
        });
      }
      play() {
        (this.player.play(), (this.isPlay = !0));
      }
      pause() {
        (this.player.pause(), (this.isPlay = !1));
      }
      autoPlay() {
        (console.log("audoPlay"), this.player.play());
      }
      closeVideoBtn() {
        (H.play("click"), this.closeVideo());
      }
      closeVideo() {
        this.first &&
          ((this.first = !1),
          this.player.pause(),
          H.play("bgm", -1),
          this.$emit("skip"),
          u["a"].to(this.$refs.videoWrapper, {
            opacity: 0,
            duration: 1,
            onComplete: () => {
              (this.$emit("close"), this.$store.commit("closeVideo"));
            },
          }));
      }
      destroy() {
        clearInterval(this.time);
      }
    };
    (Object(a["a"])(
      [Object(r["b"])({ default: 0 })],
      at.prototype,
      "index",
      void 0,
    ),
      Object(a["a"])(
        [Object(r["b"])({ default: !1 })],
        at.prototype,
        "transitions",
        void 0,
      ),
      Object(a["a"])(
        [Object(r["b"])({ default: "" })],
        at.prototype,
        "videoSrc",
        void 0,
      ),
      Object(a["a"])(
        [Object(r["b"])({ default: "" })],
        at.prototype,
        "videoPoster",
        void 0,
      ),
      (at = Object(a["a"])([Object(r["a"])({})], at)));
    var rt = at,
      lt = rt,
      ct = (i("b5b7"), Object(w["a"])(lt, ot, nt, !1, null, "7d368758", null)),
      ht = ct.exports;
    let dt = class extends r["c"] {
      constructor() {
        (super(...arguments),
          (this.mouserOver = !1),
          (this.desc = "获得助农碎片 点击解锁技能"),
          (this.light = [!1, !1, !1]),
          (this.showFragments = !1),
          (this.tablet = !1),
          (this.isIntroduceShow = !1),
          (this.introduceIndex = 0),
          (this.scale = { value: 1 }),
          (this.tips = [{ hand: { right: -490, targetRight: -290 } }, {}]));
      }
      get tip_text() {
        return this.mouserOver ? "松开手指" : "移动牛于此处";
      }
      get interactEnd() {
        return this.farmingIndex > 1;
      }
      rem(t) {
        return (t / 75) * 0.5;
      }
      get farmingIndex() {
        return this.$store.state.farmingIndex;
      }
      get titleIndex() {
        return this.$store.state.farmingTitleIndex;
      }
      get hasInteract() {
        return this.$store.state.hasInteract[0];
      }
      get hasAnim() {
        return this.$store.state.hasAnim[0];
      }
      get interactTip0distance() {
        return this.$store.state.interactTip0distance;
      }
      async mounted() {
        (u["a"].to(this.$refs.button, {
          opacity: 0.5,
          repeat: -1,
          yoyo: !0,
          duration: 0.75,
        }),
          this.$refs.icon.forEach((t) => {
            this.titleAnim(t);
          }),
          this.tipAnim(),
          window.addEventListener("resize", this.onWindowResize),
          this.onWindowResize());
      }
      destroyed() {
        (console.log("interactTip0: destroyed"),
          window.removeEventListener("resize", this.onWindowResize));
      }
      onWindowResize() {
        const t = Math.max(window.innerWidth, window.innerHeight),
          e = Math.min(window.innerWidth, window.innerHeight),
          i = t / e;
        (console.log("pixelRatio", i), (this.tablet = i >= 1 && i <= 1.38));
      }
      onInteractTip0distance(t) {
        const e = 50,
          i = 300,
          s = u["a"].utils.clamp(e, i, t),
          o = 1 - u["a"].utils.mapRange(e, i, 0, 1, s);
        (u["a"].to(this.$refs.circleWrapper, { scale: 1 + o / 2 }),
          u["a"].to(this.scale, { value: 1 + o / 2 }),
          (this.mouserOver = o > 0.95));
      }
      onHasInteractChange(t) {
        t
          ? this.hideTipAnim()
          : this.hasAnim
            ? this.showTipAnim(3500)
            : this.showTipAnim(2e3);
      }
      onInteractEnd(t) {
        setTimeout(() => {
          t && !this.isIntroduceShow && (this.showFragments = !0);
        }, 2e3);
      }
      showTipAnim(t) {
        (u["a"].to(this.$refs.tip, {
          opacity: 0,
          delay: 0.5,
          onUpdate: () => {},
          onComplete: () => {
            this.mouserOver = !1;
          },
        }),
          setTimeout(() => {
            (u["a"].to(this.$refs.tip, { opacity: 1, onUpdate: () => {} }),
              this.tipAnim());
          }, t));
      }
      hideTipAnim() {
        this.interactAnim();
      }
      tipAnim() {
        (this.handTimeline && this.handTimeline.kill(),
          this.circleTimeline && this.circleTimeline.kill(),
          (this.circleTimeline = u["a"].timeline()));
        const t = this.$refs.circleWrapper;
        (this.circleTimeline.fromTo(
          t,
          { opacity: 1, scale: 1 },
          {
            opacity: 0.5,
            delay: 0.5,
            repeat: -1,
            yoyo: !0,
            duration: 1,
            ease: "none",
          },
        ),
          this.textTimeline && this.textTimeline.kill(),
          (this.textTimeline = u["a"].timeline()));
        const e = this.$refs.text;
        this.textTimeline.to(e, { opacity: 1 });
      }
      interactAnim() {
        (this.circleTimeline.kill(), (this.circleTimeline = u["a"].timeline()));
        const t = this.$refs.circleWrapper;
        (this.circleTimeline.addLabel("start"),
          this.circleTimeline.to(t, {
            opacity: 0.6,
            duration: 0.7,
            repeat: -1,
            yoyo: !0,
            ease: "power1.out",
          }),
          this.textTimeline.kill(),
          (this.textTimeline = u["a"].timeline()));
        const e = this.$refs.text;
        this.textTimeline.to(e, { opacity: 0.7, repeat: -1, yoyo: !0 });
      }
      titleAnim(t) {
        let [e, i, s, o, n] = [0, 0, 0, 0, 0];
        const a = [D(0.3, 0.6), D(0.3, 0.6), D(0.3, 0.6), D(0.3, 0.6)];
        u["a"].to(t, {
          repeat: -1,
          yoyo: !0,
          duration: 2,
          onUpdate: () => {
            ((e += 1),
              (o += 0.05 * Math.cos(e * a[0] * 0.05 + 0.1 * a[1])),
              (n += 0.05 * Math.cos(e * a[2] * 0.05 + 0.1 * a[3])),
              (t.style.transform = `translate3d(${o}px,${n}px,0)`));
          },
        });
      }
      openIntroduce(t) {
        (H.play("click"),
          (this.introduceIndex = t),
          (this.isIntroduceShow = !0));
      }
      closeIntroduce() {
        ((this.isIntroduceShow = !1),
          this.interactEnd &&
            setTimeout(() => {
              this.showFragments = !0;
            }, 2e3));
      }
      nextBtn() {
        ((this.showFragments = !0),
          L(
            "btn",
            "skipScene",
            "跳过交互场景-" + this.$store.state.currentSceneName,
          ));
      }
    };
    (Object(a["a"])(
      [Object(r["d"])("interactTip0distance", { deep: !0 })],
      dt.prototype,
      "onInteractTip0distance",
      null,
    ),
      Object(a["a"])(
        [Object(r["d"])("hasInteract", { deep: !0 })],
        dt.prototype,
        "onHasInteractChange",
        null,
      ),
      Object(a["a"])(
        [Object(r["d"])("interactEnd", { deep: !0 })],
        dt.prototype,
        "onInteractEnd",
        null,
      ),
      (dt = Object(a["a"])(
        [
          Object(r["a"])({
            components: {
              Introduce: st,
              GetFragments: Q,
              Fragments: x,
              VideoScreen: ht,
            },
          }),
        ],
        dt,
      )));
    var ut = dt,
      pt = ut,
      mt = (i("ddee"), Object(w["a"])(pt, h, d, !1, null, "61982a00", null)),
      ft = mt.exports,
      gt = function () {
        var t = this,
          e = t._self._c;
        t._self._setupProxy;
        return e(
          "div",
          { staticClass: "fullscreen interact_tip_wrapper" },
          [
            e(
              "div",
              { staticClass: "section" },
              [
                e("transition", { attrs: { name: "fade" } }, [
                  t.irrigationIndex <= 0
                    ? e("div", { ref: "head", staticClass: "head" })
                    : t._e(),
                ]),
                e("transition", { attrs: { name: "fade" } }, [
                  e(
                    "div",
                    {
                      directives: [
                        {
                          name: "show",
                          rawName: "v-show",
                          value: t.irrigationIndex > 1,
                          expression: "irrigationIndex > 1",
                        },
                      ],
                      ref: "title0",
                      staticClass: "title title0",
                      on: {
                        click: function (e) {
                          return t.openIntroduce(2);
                        },
                      },
                    },
                    [
                      e("div", {
                        directives: [
                          {
                            name: "multi-ref",
                            rawName: "v-multi-ref:icon",
                            arg: "icon",
                          },
                        ],
                        staticClass: "icon icon0",
                      }),
                      e("div", { staticClass: "content0" }),
                    ],
                  ),
                ]),
                e("transition", { attrs: { name: "fade" } }, [
                  e(
                    "div",
                    {
                      directives: [
                        {
                          name: "show",
                          rawName: "v-show",
                          value: t.irrigationIndex > 1,
                          expression: "irrigationIndex > 1",
                        },
                      ],
                      ref: "title1",
                      staticClass: "title title1",
                      on: {
                        click: function (e) {
                          return t.openIntroduce(4);
                        },
                      },
                    },
                    [
                      e("div", {
                        directives: [
                          {
                            name: "multi-ref",
                            rawName: "v-multi-ref:icon",
                            arg: "icon",
                          },
                        ],
                        staticClass: "icon icon1",
                      }),
                      e("div", { staticClass: "content1" }),
                    ],
                  ),
                ]),
                e("Fragments", { attrs: { light: t.light, index: 2 } }),
                t.interactEnd || t.showFragments
                  ? t._e()
                  : e("div", { ref: "tip", staticClass: "tip_containner" }, [
                      e("div", { staticClass: "icon" }, [
                        e("div", { ref: "cloud", staticClass: "cloud" }),
                        e("div", { ref: "rain", staticClass: "rain" }),
                      ]),
                      e("div", { ref: "text", staticClass: "tip_text" }, [
                        t._v(t._s(t.tip_text)),
                      ]),
                    ]),
                e("div", { staticClass: "desc" }),
                e(
                  "div",
                  {
                    staticClass: "close_wrapper",
                    on: {
                      click: function (e) {
                        return t.nextBtn();
                      },
                    },
                  },
                  [e("div", { staticClass: "close_bt" })],
                ),
              ],
              1,
            ),
            t.show
              ? e("GetFragments2", {
                  attrs: { index: 0 },
                  on: { close: t.hideFragments },
                })
              : t._e(),
            t.isIntroduceShow
              ? e("Introduce", {
                  attrs: { index: t.introduceIndex },
                  on: {
                    close: function (e) {
                      return t.closeIntroduce();
                    },
                  },
                })
              : t._e(),
            t.showFragments
              ? e("GetFragments", { attrs: { index: 1 } })
              : t._e(),
          ],
          1,
        );
      },
      vt = [],
      wt = function () {
        var t = this,
          e = t._self._c;
        t._self._setupProxy;
        return e(
          "div",
          { ref: "getFragments2", staticClass: "getFragments fullscreen" },
          [
            e("div", { ref: "background", staticClass: "background" }),
            e("div", { ref: "lightsWrapper", staticClass: "lights_wrapper" }, [
              e("div", { ref: "light0", staticClass: "light light0" }),
              e("div", { ref: "light1", staticClass: "light light1" }),
            ]),
            e("div", {
              ref: "fragments",
              staticClass: "fragments",
              class: "fragments" + t.index,
            }),
          ],
        );
      },
      yt = [];
    let xt = class extends r["c"] {
      constructor() {
        (super(...arguments),
          (this.desc = "获取丰收碎片 解锁技能展示"),
          (this.fragments = [
            { width: 46, height: 55, right: 78, top: 119 },
            { width: 49, height: 52, right: 83, top: 188 },
            { width: 57, height: 43, right: 76, top: 254 },
          ]));
      }
      mounted() {
        (u["a"].to([this.$refs.light0, this.$refs.light1], {
          duration: 1,
          opacity: 0.7,
          repeat: -1,
          stagger: 0.5,
          yoyo: !0,
        }),
          u["a"].to(this.$refs.light0, {
            rotate: "360deg",
            duration: 30,
            ease: "none",
            repeat: -1,
          }),
          this.anim());
      }
      rem(t) {
        return (t / 75) * 0.5;
      }
      anim() {
        const t = u["a"].timeline();
        (t.to({}, { duration: 1 }), t.addLabel("start"));
        const e = this.$refs.background;
        t.to(e, { opacity: 0 }, "start");
        const i = this.$refs.lightsWrapper;
        t.to(i, { opacity: 0 }, "start");
        const s = this.$refs.fragments,
          o = this.fragments[this.index],
          n = { a: 100 };
        t.to(
          s,
          {
            width: this.rem(o.width) + "rem",
            height: this.rem(o.height) + "rem",
            right: this.rem(o.right) + "rem",
            top: this.rem(o.top) + "rem",
            onStart: () => {
              H.play("flyBling");
            },
            duration: 0.75,
          },
          "start",
        )
          .set(this.$refs.getFragments2, { pointerEvents: "none" })
          .to(n, {
            a: 150,
            duration: 0.75,
            ease: "back.out(1.7)",
            onUpdate: () => {
              s.style.filter = `brightness(${n.a}%)`;
            },
          })
          .to(s, { scale: 1.1, ease: "circ", duration: 0.75 }, "<")
          .to(n, {
            a: 100,
            duration: 1,
            ease: "power1.in",
            onUpdate: () => {
              s.style.filter = `brightness(${n.a}%)`;
            },
          })
          .to(s, { scale: 1, ease: "back.out(10)" }, "<");
      }
      close() {
        this.$emit("close");
      }
    };
    (Object(a["a"])(
      [Object(r["b"])({ default: 0 })],
      xt.prototype,
      "index",
      void 0,
    ),
      (xt = Object(a["a"])([Object(r["a"])({ components: {} })], xt)));
    var bt = xt,
      Pt = bt,
      Tt = (i("584b"), Object(w["a"])(Pt, wt, yt, !1, null, "93c6cd98", null)),
      _t = Tt.exports;
    let St = class extends r["c"] {
      constructor() {
        (super(...arguments),
          (this.tip_text = "长按屏幕 甘霖降落"),
          (this.light = [!1, !1, !1]),
          (this.show = !0),
          (this.showFragments = !1),
          (this.isIntroduceShow = !1),
          (this.introduceIndex = 0));
      }
      get title() {
        return !0;
      }
      get interactEnd() {
        return this.irrigationIndex >= 4;
      }
      rem(t) {
        return (t / 75) * 0.5;
      }
      get irrigationIndex() {
        return this.$store.state.irrigationIndex;
      }
      get hasInteract() {
        return this.$store.state.hasInteract[1];
      }
      async mounted() {
        (this.$refs.icon.forEach((t) => {
          this.titleAnim(t);
        }),
          this.tipAnim());
      }
      tipAnim() {
        const t = u["a"].timeline(),
          e = (this.$refs.cloud, this.$refs.rain);
        this.$refs.text;
        (t
          .fromTo([e], { opacity: 0.5 }, { opacity: 1, duration: 1 }, "-=0.5")
          .to({}, { duration: 1 })
          .to({}, { duration: 0.5 }),
          t.repeat(-1));
      }
      onHasInteractChange(t) {
        t ? this.hideTipAnim() : this.showTipAnim();
      }
      onInteractEnd(t) {
        setTimeout(() => {
          t && !this.isIntroduceShow && (this.showFragments = !0);
        }, 2e3);
      }
      titleAnim(t) {
        let [e, i, s, o, n] = [0, 0, 0, 0, 0];
        const a = [D(0.3, 0.6), D(0.3, 0.6), D(0.3, 0.6), D(0.3, 0.6)];
        u["a"].to(t, {
          repeat: -1,
          yoyo: !0,
          duration: 2,
          onUpdate: () => {
            ((e += 1),
              (o += 0.05 * Math.cos(e * a[0] * 0.05 + 0.1 * a[1])),
              (n += 0.05 * Math.cos(e * a[2] * 0.05 + 0.1 * a[3])),
              (t.style.transform = `translate3d(${o}px,${n}px,0)`));
          },
        });
      }
      showTipAnim() {
        u["a"].to(this.$refs.tip, {
          opacity: 1,
          delay: 0.5,
          onUpdate: () => {},
        });
      }
      hideTipAnim() {
        u["a"].to(this.$refs.tip, {
          opacity: 0,
          delay: 0.5,
          onUpdate: () => {},
        });
      }
      hideFragments() {
        (r["c"].set(this.light, 0, !0), (this.show = !1));
      }
      openIntroduce(t) {
        (H.play("click"),
          (this.introduceIndex = t),
          (this.isIntroduceShow = !0));
      }
      closeIntroduce() {
        ((this.isIntroduceShow = !1),
          this.interactEnd &&
            setTimeout(() => {
              this.showFragments = !0;
            }, 2e3));
      }
      nextBtn() {
        ((this.showFragments = !0),
          L(
            "btn",
            "skipScene",
            "跳过交互场景-" + this.$store.state.currentSceneName,
          ));
      }
    };
    (Object(a["a"])(
      [Object(r["d"])("hasInteract", { deep: !0 })],
      St.prototype,
      "onHasInteractChange",
      null,
    ),
      Object(a["a"])(
        [Object(r["d"])("interactEnd", { deep: !0 })],
        St.prototype,
        "onInteractEnd",
        null,
      ),
      (St = Object(a["a"])(
        [
          Object(r["a"])({
            components: {
              Introduce: st,
              GetFragments: Q,
              GetFragments2: _t,
              Fragments: x,
            },
          }),
        ],
        St,
      )));
    var Ct = St,
      kt = Ct,
      It = (i("9c11"), Object(w["a"])(kt, gt, vt, !1, null, "85f26740", null)),
      Mt = It.exports,
      Ot = function () {
        var t = this,
          e = t._self._c;
        t._self._setupProxy;
        return e(
          "div",
          { staticClass: "fullscreen interact_tip2_wrapper" },
          [
            e(
              "div",
              { staticClass: "section" },
              [
                e("transition", { attrs: { name: "fade" } }, [
                  0 === t.harvestIndex
                    ? e("div", { ref: "head", staticClass: "head" })
                    : t._e(),
                ]),
                e("transition", { attrs: { name: "fade" } }, [
                  e(
                    "div",
                    {
                      directives: [
                        {
                          name: "show",
                          rawName: "v-show",
                          value: 1 == t.harvestIndex,
                          expression: "harvestIndex == 1",
                        },
                      ],
                      ref: "title0",
                      staticClass: "title title0",
                      on: {
                        click: function (e) {
                          return t.openIntroduce(1);
                        },
                      },
                    },
                    [
                      e("div", {
                        directives: [
                          {
                            name: "multi-ref",
                            rawName: "v-multi-ref:icon",
                            arg: "icon",
                          },
                        ],
                        staticClass: "icon icon0",
                      }),
                      e("div", { staticClass: "content0" }),
                    ],
                  ),
                ]),
                e("transition", { attrs: { name: "fade" } }, [
                  e(
                    "div",
                    {
                      directives: [
                        {
                          name: "show",
                          rawName: "v-show",
                          value: 2 == t.harvestIndex,
                          expression: "harvestIndex == 2",
                        },
                      ],
                      ref: "title1",
                      staticClass: "title title1",
                      on: {
                        click: function (e) {
                          return t.openIntroduce(5);
                        },
                      },
                    },
                    [
                      e("div", {
                        directives: [
                          {
                            name: "multi-ref",
                            rawName: "v-multi-ref:icon",
                            arg: "icon",
                          },
                        ],
                        staticClass: "icon icon1",
                      }),
                      e("div", { staticClass: "content1" }),
                    ],
                  ),
                ]),
                e("Fragments", { attrs: { light: t.light, index: 1 } }),
                t.interactEnd || t.showFragments
                  ? t._e()
                  : e("div", { ref: "tip", staticClass: "tip_containner" }, [
                      e("div", { staticClass: "shadow" }),
                      e("div", { staticClass: "tip_text" }, [
                        t._v(t._s(t.tip_text)),
                      ]),
                      t._m(0),
                    ]),
                e("div", { staticClass: "desc" }),
                e(
                  "div",
                  {
                    staticClass: "close_wrapper",
                    on: {
                      click: function (e) {
                        return t.nextBtn();
                      },
                    },
                  },
                  [e("div", { staticClass: "close_bt" })],
                ),
              ],
              1,
            ),
            t.show
              ? e("GetFragments2", {
                  attrs: { index: 1 },
                  on: { close: t.hideFragments },
                })
              : t._e(),
            t.isIntroduceShow
              ? e("Introduce", {
                  attrs: { index: t.introduceIndex },
                  on: {
                    close: function (e) {
                      return t.closeIntroduce();
                    },
                  },
                })
              : t._e(),
            t.showFragments
              ? e("GetFragments", { attrs: { index: 2 } })
              : t._e(),
          ],
          1,
        );
      },
      Ft = [
        function () {
          var t = this,
            e = t._self._c;
          t._self._setupProxy;
          return e("div", { staticClass: "icon" }, [
            e("div", { staticClass: "progress" }),
          ]);
        },
      ];
    let At = class extends r["c"] {
      constructor() {
        (super(...arguments),
          (this.tip_text = "左右滑动 收割谷物"),
          (this.light = [!1, !1, !0]),
          (this.show = !0),
          (this.showFragments = !1),
          (this.isIntroduceShow = !1),
          (this.introduceIndex = 0));
      }
      rem(t) {
        return (t / 75) * 0.5;
      }
      get harvestIndex() {
        return this.$store.state.harvestIndex;
      }
      get interactEnd() {
        return this.harvestIndex >= 2;
      }
      get hasInteract() {
        return this.$store.state.hasInteract[2];
      }
      async mounted() {
        (this.$refs.icon.forEach((t) => {
          this.titleAnim(t);
        }),
          this.tipAnim());
      }
      tipAnim() {
        u["a"].timeline();
      }
      onHasInteractChange(t) {
        t ? this.hideTipAnim() : this.showTipAnim();
      }
      onInteractEnd(t) {
        setTimeout(() => {
          t && !this.isIntroduceShow && (this.showFragments = !0);
        }, 2e3);
      }
      titleAnim(t) {
        let [e, i, s, o, n] = [0, 0, 0, 0, 0];
        const a = [D(0.3, 0.6), D(0.3, 0.6), D(0.3, 0.6), D(0.3, 0.6)];
        u["a"].to(t, {
          repeat: -1,
          yoyo: !0,
          duration: 2,
          onUpdate: () => {
            ((e += 1),
              (o += 0.05 * Math.cos(e * a[0] * 0.05 + 0.1 * a[1])),
              (n += 0.05 * Math.cos(e * a[2] * 0.05 + 0.1 * a[3])),
              (t.style.transform = `translate3d(${o}px,${n}px,0)`));
          },
        });
      }
      showTipAnim() {
        u["a"].to(this.$refs.tip, { opacity: 1, onUpdate: () => {} });
      }
      hideTipAnim() {
        u["a"].to(this.$refs.tip, { opacity: 0, onUpdate: () => {} });
      }
      hideFragments() {
        (r["c"].set(this.light, 1, !0), (this.show = !1));
      }
      openIntroduce(t) {
        (H.play("click"),
          (this.introduceIndex = t),
          (this.isIntroduceShow = !0));
      }
      closeIntroduce() {
        ((this.isIntroduceShow = !1),
          this.interactEnd &&
            setTimeout(() => {
              this.showFragments = !0;
            }, 2e3));
      }
      nextBtn() {
        ((this.showFragments = !0),
          L(
            "btn",
            "skipScene",
            "跳过交互场景-" + this.$store.state.currentSceneName,
          ));
      }
    };
    (Object(a["a"])(
      [Object(r["d"])("hasInteract", { deep: !0 })],
      At.prototype,
      "onHasInteractChange",
      null,
    ),
      Object(a["a"])(
        [Object(r["d"])("interactEnd", { deep: !0 })],
        At.prototype,
        "onInteractEnd",
        null,
      ),
      (At = Object(a["a"])(
        [
          Object(r["a"])({
            components: {
              Introduce: st,
              GetFragments: Q,
              GetFragments2: _t,
              Fragments: x,
            },
          }),
        ],
        At,
      )));
    var Et = At,
      jt = Et,
      $t = (i("5baf"), Object(w["a"])(jt, Ot, Ft, !1, null, "fefef5c8", null)),
      zt = $t.exports;
    let Dt = class extends r["c"] {
      constructor() {
        (super(...arguments), (this.isShowTip = !0));
      }
      get chapterIndex() {
        return this.$store.state.interactChapterIndex;
      }
    };
    Dt = Object(a["a"])(
      [
        Object(r["a"])({
          components: { InteractTip0: ft, InteractTip1: Mt, InteractTip2: zt },
        }),
      ],
      Dt,
    );
    var Lt = Dt,
      Vt = Lt,
      Wt = (i("cf5e"), Object(w["a"])(Vt, l, c, !1, null, "0329e79a", null)),
      Ut = Wt.exports,
      Nt = function () {
        var t = this,
          e = t._self._c;
        t._self._setupProxy;
        return e(
          "div",
          { staticClass: "loading_page fullscreen" },
          [
            e("div", { staticClass: "background" }),
            e("Logo"),
            e("div", { staticClass: "logo" }),
            e("div", { ref: "music", staticClass: "music_wrapper" }, [
              t._v(t._s(t.musicText)),
            ]),
            e(
              "div",
              { staticClass: "loading_wrapper" },
              [
                e(
                  "div",
                  { ref: "progressWrapper", staticClass: "progress_wrapper" },
                  [
                    e(
                      "div",
                      { staticClass: "progress" },
                      [
                        e("div", {
                          ref: "wheatBranch",
                          staticClass: "wheat_branch",
                        }),
                        e("div", {
                          ref: "wheatCenter",
                          staticClass: "wheat_center",
                        }),
                        t._l(10, function (t, i) {
                          return e("div", {
                            key: "wheatTop" + i,
                            ref: "wheatTop",
                            refInFor: !0,
                            staticClass: "wheat_top",
                            class: "wheat_top" + i,
                          });
                        }),
                        t._l(10, function (t, i) {
                          return e("div", {
                            key: "wheatBottom" + i,
                            ref: "wheatBottom",
                            refInFor: !0,
                            staticClass: "wheat_bottom",
                            class: "wheat_bottom" + i,
                          });
                        }),
                      ],
                      2,
                    ),
                    e("div", { staticClass: "text" }, [
                      t._v(t._s(t.formattedProgress) + "%"),
                    ]),
                  ],
                ),
                t._l(t.desc, function (i, s) {
                  return e(
                    "div",
                    { key: s, staticClass: "desc_for" },
                    [
                      e("transition", { attrs: { name: "fade1" } }, [
                        t.index === s
                          ? e("div", { staticClass: "desc_wrapper" }, [
                              e("div", { staticClass: "left" }),
                              e("div", { staticClass: "content" }, [
                                t._v(t._s(i)),
                              ]),
                              e("div", { staticClass: "right" }),
                            ])
                          : t._e(),
                      ]),
                    ],
                    1,
                  );
                }),
              ],
              2,
            ),
            e(
              "div",
              {
                directives: [
                  {
                    name: "show",
                    rawName: "v-show",
                    value: 100 === t.formattedProgress,
                    expression: "formattedProgress === 100",
                  },
                ],
                staticClass: "button_wrapper",
                on: {
                  click: function (e) {
                    return t.nextClick();
                  },
                },
              },
              [e("div", { ref: "button", staticClass: "button-icon fade" })],
            ),
          ],
          1,
        );
      },
      Bt = [],
      Rt = function () {
        var t = this,
          e = t._self._c;
        t._self._setupProxy;
        return e("div", { staticClass: "logo_wrapper" });
      },
      Ht = [];
    let qt = class extends r["c"] {};
    qt = Object(a["a"])([Object(r["a"])({ components: {} })], qt);
    var Yt = qt,
      Gt = Yt,
      Xt = (i("4b66"), Object(w["a"])(Gt, Rt, Ht, !1, null, "db4e2e6e", null)),
      Qt = Xt.exports,
      Jt = function () {
        var t = this,
          e = t._self._c;
        t._self._setupProxy;
        return e(
          "div",
          { ref: "videoWrapper", staticClass: "video_wrapper fullscreen" },
          [
            e("video", {
              ref: "video",
              staticClass: "fullscreen video",
              attrs: {
                src: t.videoSrc,
                width: t.width,
                height: t.height,
                preload: "auto",
                playsinline: "true",
                "webkit-playsinline": "true",
                "x5-video-player-type": "h5",
                "x5-video-orientation": "portraint",
                "x5-video-player-fullscreen": "false",
                airplay: "allow",
                "x-webkit-airplay": "allow",
                poster: t.videoPoster,
              },
            }),
          ],
        );
      },
      Kt = [];
    let Zt = class extends r["c"] {
      constructor() {
        (super(...arguments),
          (this.isDEV = !0),
          (this.timer = 0),
          (this.audoPlayHander = null),
          (this.isClose = !1));
      }
      get video() {
        return this.$refs.video;
      }
      mounted() {
        (console.log("videoNoController: ", this.videoSrc),
          this.initVideo(),
          this.isAutoPlay && this.play());
      }
      initVideo() {
        ((this.player = new MMD.VideoPlayer({
          videoElement: this.video,
          src: this.videoSrc,
          loop: !1,
          muted: !1,
          tryMultipleVideoPlayAtTheSameTime: !1,
          timesParam: [],
          onTimes: (t) => {},
          onStart: () => {
            this.$emit("onStart");
          },
          onEnd: () => {
            console.log("video end");
          },
        })),
          this.loopParam &&
            this.loopParam.length > 1 &&
            (this.timer = setInterval(() => {
              (this.video.currentTime >= this.loopParam[0] &&
                (this.video.currentTime = this.loopParam[1]),
                this.isClose &&
                  (console.log("isClose:", this.isClose),
                  clearInterval(this.timer)));
            }, 15)));
      }
      play() {
        (this.player.play(), this.isClose && H.pause("bgm"));
      }
      autoPlay() {
        (console.log("audoPlay"), this.player.play());
      }
      closeVideo() {
        ((this.isClose = !0), H.play("bgm", -1), this.$emit("close"));
      }
      setStartTime(t) {
        this.player.currentTimeAndPause = t;
      }
    };
    (Object(a["a"])(
      [Object(r["b"])({ default: 0 })],
      Zt.prototype,
      "index",
      void 0,
    ),
      Object(a["a"])(
        [Object(r["b"])({ default: !0 })],
        Zt.prototype,
        "anim",
        void 0,
      ),
      Object(a["a"])(
        [Object(r["b"])({ default: !0 })],
        Zt.prototype,
        "muted",
        void 0,
      ),
      Object(a["a"])(
        [Object(r["b"])({ default: !1 })],
        Zt.prototype,
        "isAutoPlay",
        void 0,
      ),
      Object(a["a"])(
        [Object(r["b"])({ default: 0 })],
        Zt.prototype,
        "startTime",
        void 0,
      ),
      Object(a["a"])(
        [Object(r["b"])({ default: 1624 })],
        Zt.prototype,
        "width",
        void 0,
      ),
      Object(a["a"])(
        [Object(r["b"])({ default: 750 })],
        Zt.prototype,
        "height",
        void 0,
      ),
      Object(a["a"])(
        [
          Object(r["b"])({
            default:
              "media/prelude.mp4",
          }),
        ],
        Zt.prototype,
        "videoSrc",
        void 0,
      ),
      Object(a["a"])(
        [Object(r["b"])({ default: [] })],
        Zt.prototype,
        "loopParam",
        void 0,
      ),
      Object(a["a"])(
        [Object(r["b"])({ default: "" })],
        Zt.prototype,
        "videoPoster",
        void 0,
      ),
      (Zt = Object(a["a"])([Object(r["a"])({})], Zt)));
    var te = Zt,
      ee = te,
      ie = (i("a07a"), Object(w["a"])(ee, Jt, Kt, !1, null, "9102744c", null)),
      se = ie.exports;
    let oe = class extends r["c"] {
      constructor() {
        (super(...arguments),
          (this.desc = [
            "丹雀衔五穗 人间始丰登",
            "推寒暑 算圆缺 授民农时",
            "察天时 用地利 勤治田亩",
            "民为根本 食为民天 望助鬼谷子育之护之",
            "愿五谷与你 皆获丰收之喜",
            "点击丹雀 拾取九穗禾",
            "点击丹雀 拾取九穗禾",
          ]),
          (this.musicText = "*请打开声音体验更佳"),
          (this.progress = 0),
          (this.lastTime = -1),
          (this.animId = 0),
          (this.index = 0));
      }
      get targetProgress() {
        return this.$store.getters.loadProgress;
      }
      get formattedProgress() {
        return Math.round(100 * this.progress);
      }
      rem(t) {
        return (t / 75) * 0.5;
      }
      mounted() {
        ((this.animId = requestAnimationFrame(this.anim)),
          this.initAnim(),
          this.progressAnim(),
          this.initTimer(),
          L("loading", "loadstart", "加载开始"));
      }
      initTimer() {
        let t = 0;
        this.timer = setInterval(() => {
          ((t += 500),
            (this.index = Math.min(
              Math.floor(this.formattedProgress / 20),
              Math.floor(t / 1500),
            )));
        }, 500);
      }
      initAnim() {
        const t = this.$refs.button;
        u["a"].fromTo(
          t,
          { opacity: 0.5 },
          { opacity: 1, scale: 1.2, repeat: -1, yoyo: !0 },
        );
      }
      progressAnim() {
        this.timeline = u["a"].timeline({ paused: !0 });
        const t = this.$refs.wheatCenter,
          e = this.$refs.wheatTop,
          i = this.$refs.wheatBottom;
        this.timeline.fromTo(
          t,
          { opacity: 0, x: this.rem(-20) + "rem" },
          { opacity: 1, x: 0 },
        );
        for (let s = 0; s < 10; s++) {
          const t = "start" + String.fromCharCode(65 + s),
            o = D(0, 0.5),
            n = t + (D(0, 1) > 0.5 ? "+=" : "-=") + o.toFixed(2);
          (console.log(n),
            this.timeline
              .addLabel(t)
              .fromTo(
                e[s],
                {
                  scale: D(0.3, 0.7),
                  x: this.rem(-D(20, 150)) + "rem",
                  y: this.rem(-D(-30, 30)) + "rem",
                  rotate: D(-180, 180) + "deg",
                },
                { scale: 1, x: 0, y: 0, rotate: 0 },
              )
              .fromTo(e[s], { opacity: 0 }, { opacity: 1, duration: 0.5 }, t)
              .fromTo(
                i[s],
                {
                  scale: D(0.3, 0.7),
                  x: this.rem(-D(20, 150)) + "rem",
                  y: this.rem(D(-30, 30)) + "rem",
                  rotate: D(-180, 180) + "deg",
                },
                { scale: 1, x: 0, y: 0, rotate: 0 },
                n,
              )
              .fromTo(i[s], { opacity: 0 }, { opacity: 1, duration: 0.5 }, n));
        }
        this.timeline.to(this, { duration: 0.1 });
      }
      nextClick() {
        (H.play("click"), L("btn", "bird", "点击丹雀"), this.onload());
      }
      anim(t) {
        this.animId = requestAnimationFrame(this.anim);
        let e = 0;
        if (this.lastTime < 0) this.lastTime = 0.001 * t;
        else {
          const i = 0.001 * t;
          ((e = i - this.lastTime), (this.lastTime = i));
        }
        ((this.progress += Math.min(
          0.1 * (this.targetProgress - this.progress),
          e,
        )),
          this.timeline.progress(this.progress),
          this.progress > 0.99 &&
            1 === this.targetProgress &&
            (u["a"].to(this.$refs.progressWrapper, {
              opacity: 0,
              display: "none",
            }),
            (this.progress = 1),
            cancelAnimationFrame(this.animId)));
      }
      onload() {
        this.$emit("load");
      }
      destroyed() {
        clearInterval(this.timer);
      }
    };
    oe = Object(a["a"])(
      [Object(r["a"])({ components: { Logo: Qt, VideoNoController: se } })],
      oe,
    );
    var ne = oe,
      ae = ne,
      re = (i("9ad2"), Object(w["a"])(ae, Nt, Bt, !1, null, "20dc20ce", null)),
      le = re.exports,
      ce = function () {
        var t = this,
          e = t._self._c;
        t._self._setupProxy;
        return e(
          "div",
          { staticClass: "cereals_page fullscreen" },
          [
            e(
              "div",
              {
                ref: "bird",
                staticClass: "bird_wrapper",
                style: `left:${t.buttonLeft}rem`,
                on: {
                  click: function (e) {
                    return t.videoOpen();
                  },
                },
              },
              [t._m(0)],
            ),
            e("div", { ref: "desc", staticClass: "desc" }),
            e("button", {
              staticClass: "mainButton",
              on: {
                click: function (e) {
                  return t.next();
                },
              },
            }),
            t.videoShow
              ? e("VideoScreen", {
                  ref: t.video,
                  attrs: { transitions: !1, videoSrc: t.videoSrc },
                  on: { close: t.videoClose },
                })
              : t._e(),
          ],
          1,
        );
      },
      he = [
        function () {
          var t = this,
            e = t._self._c;
          t._self._setupProxy;
          return e("div", { staticClass: "button_wrapper" }, [
            e("div", { staticClass: "button-icon button_anim_tip" }),
            e("div", { staticClass: "button_desc" }, [t._v("查看五谷起源")]),
          ]);
        },
      ];
    let de = class extends r["c"] {
      constructor() {
        (super(...arguments),
          (this.videoShow = !1),
          (this.videoSrc = this.isDEV
            ? "media/prelude.mp4"
            : window.canvasShowSrc),
          (this.buttonLeft = this.rem(108.58)));
      }
      get isDEV() {
        return this.$store.state.isDEV;
      }
      created() {
        this.onWindowResize();
      }
      mounted() {
        u["a"].fromTo(
          [this.$refs.desc, this.$refs.bird],
          { opacity: 0 },
          { opacity: 1, delay: 2 },
        );
      }
      rem(t) {
        return (t / 75) * 0.5;
      }
      videoOpen() {
        (H.play("click"),
          (this.videoShow = !0),
          L("btn", "openVideo", "查看五谷起源"));
      }
      videoClose() {
        this.videoShow = !1;
      }
      next() {
        (H.play("click"), this.$emit("close"));
      }
      onWindowResize() {
        const t = Math.max(window.innerWidth, window.innerHeight),
          e = Math.min(window.innerWidth, window.innerHeight),
          i = 1624 / 750,
          s = t / e,
          o = s - i,
          n = 43;
        if (o < -0.75) {
          const t = -o - 0.85,
            e = j(0, 0.35, t),
            i = E["M"].lerp(200.58 - n, 83 - n, e);
          this.buttonLeft = this.rem(i);
        } else if (o < -0.45) {
          const t = -o - 0.45,
            e = j(0, 0.35, t),
            i = E["M"].lerp(200.58 - n, 83 - n, e);
          this.buttonLeft = this.rem(i);
        } else if (o < -0.1) {
          const t = -o - 0.1,
            e = j(0, 0.35, t),
            i = E["M"].lerp(200.58 - n, 83 - n, e);
          this.buttonLeft = this.rem(i);
        } else this.buttonLeft = this.rem(108.58 - n);
      }
    };
    de = Object(a["a"])(
      [Object(r["a"])({ components: { Logo: Qt, VideoScreen: ht } })],
      de,
    );
    var ue = de,
      pe = ue,
      me = (i("11aa"), Object(w["a"])(pe, ce, he, !1, null, "4d318206", null)),
      fe = me.exports,
      ge = function () {
        var t = this,
          e = t._self._c;
        t._self._setupProxy;
        return e("div", { staticClass: "login_page fullscreen" });
      },
      ve = [];
    let we = class extends r["c"] {};
    we = Object(a["a"])([Object(r["a"])({ components: {} })], we);
    var ye = we,
      xe = ye,
      be = (i("d8d2"), Object(w["a"])(xe, ge, ve, !1, null, "993f97ec", null)),
      Pe = be.exports,
      Te = function () {
        var t = this,
          e = t._self._c;
        t._self._setupProxy;
        return e(
          "div",
          { ref: "switchPage", staticClass: "switch_page fullscreen" },
          [
            e("div", { staticClass: "desc" }),
            e("div", { staticClass: "switch_wrapper" }, [
              e(
                "div",
                { staticClass: "switch" },
                [
                  e(
                    "div",
                    {
                      ref: "plate",
                      staticClass: "plate",
                      style: `transform:translate3d(-50%, -50%,0) rotate(${t.angle}deg)`,
                    },
                    [
                      e(
                        "div",
                        {
                          staticClass: "icon_wrapper",
                          staticStyle: { opacity: "0.2" },
                        },
                        t._l(t.opacityList, function (t, i) {
                          return e("div", {
                            key: i,
                            staticClass: "icon",
                            class: "icon" + i,
                            style: "opacity:" + t,
                          });
                        }),
                        0,
                      ),
                      e(
                        "div",
                        { ref: "dropWrapper", staticClass: "drop_wrapper" },
                        [
                          e("img", {
                            ref: "dropImg",
                            staticClass: "drop",
                            style: { opacity: t.opacityList[t.modTurns] },
                            attrs: { src: t.maskUrl },
                          }),
                        ],
                      ),
                    ],
                  ),
                  t._l(t.opacityList, function (t, i) {
                    return e("div", {
                      key: "icon" + i,
                      ref: "iconTitle",
                      refInFor: !0,
                      staticClass: "icon_title",
                      class: "title" + i,
                      style: "opacity:" + t,
                    });
                  }),
                ],
                2,
              ),
              e("div", {
                staticClass: "back_circle",
                style: `transform:translate3d(-50%, -50%,0) rotate(${t.angle1}deg)`,
              }),
              e("div", { staticClass: "back_circle2" }),
            ]),
            e("div", { staticClass: "controls" }, [
              e("div", {
                ref: "left",
                staticClass: "left",
                on: {
                  click: function (e) {
                    return t.checkLeft();
                  },
                },
              }),
              e("div", {
                ref: "right",
                staticClass: "right",
                on: {
                  click: function (e) {
                    return t.checkRight();
                  },
                },
              }),
            ]),
            e("button", {
              staticClass: "mainButton",
              on: {
                click: function (e) {
                  return t.submit();
                },
              },
            }),
          ],
        );
      },
      _e = [];
    let Se = class extends r["c"] {
      constructor() {
        (super(...arguments),
          (this.baseUrl =
            "./"),
          (this.titles = [
            "牛角面具",
            "丹雀衔谷",
            "五谷丰登",
            "耒耜之勤",
            "甘霖雨露",
            "牛耕鞋履",
            "火神谱系",
          ]),
          (this.listLength = 7),
          (this.active = this.posterIndex),
          (this.last = this.getIndex(this.active)),
          (this.next = this.getIndex(this.active)),
          (this.submitText = "确认选择"),
          (this.animId = 0),
          (this.startPoint = new E["Eb"]()),
          (this.endPoint = new E["Eb"]()),
          (this.angle = 0),
          (this.angleTarget = 0),
          (this.angle1 = 0),
          (this.angleTarget1 = 0),
          (this.angle2 = 0),
          (this.angleTarget2 = 0),
          (this.isInteract = !1),
          (this.isAnim = !1),
          (this.playAnim = !1),
          (this.turns = 0),
          (this.formatAngle = 0),
          (this.dir = 0),
          (this.gifImage = new Array(this.listLength)),
          (this.maskUrl = this.baseUrl + "/images/switchPage/mask0.gif"));
      }
      get posterIndex() {
        return this.$store.state.posterIndex;
      }
      get modTurns() {
        return $(this.turns, this.listLength);
      }
      onModTurns(t) {
        const e = this.$refs.dropImg,
          i = this.$refs.dropWrapper;
        ((i.style.opacity = "0"),
          (e.onload = () => {
            i.style.opacity = "1";
          }),
          (e.src = `${this.baseUrl}/images/switchPage/mask${this.modTurns}.gif`));
      }
      get opacityList() {
        let t = [0, 0, 0, 0, 0, 0, 0],
          e = this.angleTarget + 180,
          i = $(e, 360 * t.length);
        for (let s = 0; s < t.length; s++) {
          let e = 360 * s,
            o = 90,
            n = i;
          0 == s
            ? (n = n > 360 * (t.length - 1) ? n - 360 * t.length : n)
            : s == t.length - 1 && (n = n < 360 ? n + 360 * t.length : n);
          let a = j(e - o, o + e, n),
            r = j(360 + e + o, 360 - o + e, n);
          t[s] = Math.min(a, r);
        }
        return t;
      }
      onTurnsChanged() {
        H.play("stone");
      }
      mounted() {
        ((this.animId = requestAnimationFrame(this.anim)),
          this.initButtonAnim(),
          this.initListener());
      }
      rem(t) {
        return (t / 75) * 0.5;
      }
      initListener() {
        const t = this.$refs.switchPage;
        (t.addEventListener("touchstart", this.onTouchStart.bind(this)),
          t.addEventListener("touchmove", this.onTouchMove.bind(this)),
          t.addEventListener("touchend", this.onTouchEnd.bind(this)));
      }
      initButtonAnim() {
        u["a"].to([this.$refs.left, this.$refs.right], {
          opacity: 0.5,
          repeat: -1,
          yoyo: !0,
          ease: "sine.inOut",
          duration: 1,
        });
      }
      get centerPoint() {
        return this.getScreenPos({
          pageX: window.innerWidth / 2,
          pageY: window.innerHeight / 2 - this.rem(30),
        });
      }
      get needRotate() {
        return this.$store.state.needRotate;
      }
      getScreenPos(t) {
        const e = new E["Eb"]();
        return (
          this.needRotate
            ? ((e.x = t.pageY), (e.y = -t.pageX))
            : ((e.x = t.pageX), (e.y = t.pageY)),
          e
        );
      }
      getIndex(t) {
        return $(t, this.listLength);
      }
      rotate() {
        ((this.isInteract = !1),
          this.formatAngle > 340
            ? (this.turns += 1)
            : this.formatAngle < -340 && (this.turns -= 1),
          (this.active = this.getIndex(this.turns)),
          (this.angleTarget = 360 * this.turns),
          (this.formatAngle = 0));
      }
      onTouchStart(t) {
        ((this.isInteract = !0),
          (this.startPoint = this.getScreenPos(t.touches[0])));
      }
      onTouchMove(t) {
        if (!this.isInteract) return;
        this.endPoint = this.getScreenPos(t.touches[0]);
        const e = this.startPoint.clone().sub(this.centerPoint),
          i = this.endPoint.clone().sub(this.centerPoint),
          s = e.x * i.y - e.y * i.x,
          o = e.clone().normalize().dot(i.clone().normalize());
        let n = Math.acos(o) * (180 / Math.PI) * 2.3;
        ((this.dir = s),
          s < 0 ? (this.angleTarget -= n) : (this.angleTarget += n),
          (this.startPoint = this.endPoint.clone()),
          (this.formatAngle = this.angleTarget - 360 * this.turns),
          (this.formatAngle > 340 || this.formatAngle < -340) && this.rotate());
      }
      onTouchEnd(t) {
        (this.isInteract &&
          (this.formatAngle > 180
            ? (this.turns += 1)
            : this.formatAngle < -180 && (this.turns -= 1),
          (this.active = this.getIndex(this.turns)),
          (this.formatAngle = 0)),
          (this.angleTarget = 360 * this.turns),
          (this.isInteract = !1));
      }
      anim() {
        ((this.angle += (this.angleTarget - this.angle) / 10),
          (this.angle1 += (this.angleTarget - this.angle) / 10 / 3),
          requestAnimationFrame(this.anim));
      }
      checkLeft() {
        ((this.turns -= 1),
          (this.active = this.getIndex(this.turns)),
          (this.angleTarget = 360 * this.turns));
      }
      checkRight() {
        ((this.turns += 1),
          (this.active = this.getIndex(this.turns)),
          (this.angleTarget = 360 * this.turns));
      }
      submit() {
        (H.play("click"),
          console.log("submit:", this.active, this.turns),
          this.$store.commit("setPosterIndex", this.active),
          L("btn", "selectElements", "选择元素-" + this.titles[this.active]),
          this.$emit("close"));
      }
    };
    (Object(a["a"])(
      [Object(r["d"])("modTurns")],
      Se.prototype,
      "onModTurns",
      null,
    ),
      Object(a["a"])(
        [Object(r["d"])("turns")],
        Se.prototype,
        "onTurnsChanged",
        null,
      ),
      (Se = Object(a["a"])([Object(r["a"])({ components: {} })], Se)));
    var Ce = Se,
      ke = Ce,
      Ie = (i("3ba1"), Object(w["a"])(ke, Te, _e, !1, null, "5504cfb9", null)),
      Me = Ie.exports,
      Oe = function () {
        var t = this,
          e = t._self._c;
        t._self._setupProxy;
        return e(
          "div",
          {
            staticClass: "bumperHarvest_page fullscreen",
            on: { pointerdown: t.onPointerdown },
          },
          [
            e("div", { ref: "desc", staticClass: "desc" }),
            t._l(8, function (i, s) {
              return e(
                "div",
                {
                  key: s,
                  ref: "button",
                  refInFor: !0,
                  staticClass: "button-icon_wrapper",
                  class: "button" + s,
                  on: {
                    click: function (e) {
                      return t.openIntroduce(s);
                    },
                  },
                },
                [e("div", { staticClass: "button-icon" })],
              );
            }),
            e("div", { staticClass: "desc_wrapper" }, [
              e("div", { staticClass: "text_background" }, [
                e(
                  "div",
                  { staticClass: "text1_wrapper" },
                  t._l(t.desc[0], function (i, s) {
                    return e(
                      "div",
                      {
                        key: i + s,
                        ref: "text1",
                        refInFor: !0,
                        staticClass: "text",
                      },
                      [t._v(" " + t._s(i) + " ")],
                    );
                  }),
                  0,
                ),
                e("div", {
                  staticClass: "hr",
                  style: `height:${t.rem(t.hrHeight)}rem`,
                }),
                e(
                  "div",
                  { staticClass: "text2_wrapper" },
                  t._l(t.desc[1], function (i, s) {
                    return e(
                      "div",
                      {
                        key: i + s,
                        ref: "text2",
                        refInFor: !0,
                        staticClass: "text",
                      },
                      [t._v(" " + t._s(i) + " ")],
                    );
                  }),
                  0,
                ),
              ]),
            ]),
            e("transition", { attrs: { name: "fade" } }, [
              e("button", {
                directives: [
                  {
                    name: "show",
                    rawName: "v-show",
                    value: !t.isIntroduceShow,
                    expression: "!isIntroduceShow",
                  },
                ],
                staticClass: "main_button",
                on: {
                  click: function (e) {
                    return t.close();
                  },
                },
              }),
            ]),
            t.isIntroduceShow
              ? e("Introduce", {
                  attrs: { index: t.introduceIndex },
                  on: {
                    close: function (e) {
                      return t.closeIntroduce();
                    },
                  },
                })
              : t._e(),
            t.showVideo
              ? t._e()
              : e("VideoNoController", { on: { close: t.playEnd } }),
          ],
          2,
        );
      },
      Fe = [];
    let Ae = class extends r["c"] {
      constructor() {
        (super(...arguments),
          (this.isIntroduceShow = !1),
          (this.showVideo = !0),
          (this.isDEV = !0),
          (this.introduceIndex = 0),
          (this.desc = ["谢谢你和我一起", "守护人间烟火"]),
          (this.hrHeight = 0));
      }
      get video() {
        return this.$refs.video;
      }
      get videoSrc() {
        return this.isDEV
          ? "media/prelude.mp4"
          : mediaURLData[8487];
      }
      rem(t) {
        return (t / 75) * 0.5;
      }
      mounted() {
        const t = this.$refs.button,
          e = u["a"].timeline();
        (e.addLabel("loop"),
          e
            .fromTo(t[0], { opacity: 0 }, { opacity: 0.7 }, "loop+=0")
            .to(this.$refs.desc, { opacity: 1 }, "<")
            .to(t[0], { opacity: 1, scale: 1.2, repeat: -1, yoyo: !0 }));
        for (let i = 1; i < t.length; i++)
          e.fromTo(
            t[i],
            { opacity: 0 },
            { opacity: 0.7 },
            "loop+=" + 0.5 * i,
          ).to(t[i], { opacity: 1, scale: 1.2, repeat: -1, yoyo: !0 });
        this.initTextAnim();
      }
      initTextAnim() {
        const t = u["a"].timeline(),
          e = this.$refs.text1,
          i = this.$refs.text2;
        t.fromTo(e, { opacity: 0 }, { opacity: 1, stagger: 0.2 })
          .to(this, { hrHeight: 181, duration: 2 }, "-=0.5")
          .fromTo(i, { opacity: 0 }, { opacity: 1, stagger: 0.2 }, "<+0.5");
      }
      openIntroduce(t) {
        (console.log("open:", t),
          H.play("click"),
          (this.introduceIndex = t),
          (this.isIntroduceShow = !0));
      }
      closeIntroduce() {
        this.isIntroduceShow = !1;
      }
      playEnd() {
        this.showVideo = !1;
      }
      close() {
        (H.play("click"), this.$emit("close"));
      }
      onPointerdown() {
        u["a"].to(this.$refs.desc, { opacity: 0 });
      }
    };
    Ae = Object(a["a"])(
      [
        Object(r["a"])({
          components: { Introduce: st, VideoNoController: se },
        }),
      ],
      Ae,
    );
    var Ee = Ae,
      je = Ee,
      $e = (i("bb92"), Object(w["a"])(je, Oe, Fe, !1, null, "4e8e04e6", null)),
      ze = $e.exports,
      De = function () {
        var t = this,
          e = t._self._c;
        t._self._setupProxy;
        return e("div", { staticClass: "cereals_page fullscreen" });
      },
      Le = [];
    let Ve = class extends r["c"] {};
    Ve = Object(a["a"])([Object(r["a"])({ components: {} })], Ve);
    var We = Ve,
      Ue = We,
      Ne = (i("c0ae"), Object(w["a"])(Ue, De, Le, !1, null, "52ca4dd4", null)),
      Be = Ne.exports,
      Re = function () {
        var t = this,
          e = t._self._c;
        t._self._setupProxy;
        return e(
          "div",
          { staticClass: "poster_page fullscreen" },
          [
            t.enablePoster
              ? e("SavePoster", {
                  ref: "savePoster",
                  staticClass: "savePoster",
                  attrs: { desc: t.desc, random: t.random },
                  on: { createPoster: t.createPoster },
                })
              : t._e(),
            e("div", {
              staticClass: "background",
              class: "background" + t.posterIndex,
            }),
            e("PosterVideo", {
              attrs: {
                index: t.posterIndex,
                videoSrc: t.videoSrc,
                isAutoPlay: !0,
                loopParam: [4.92, 0.04],
              },
            }),
            t.enablePoster
              ? e("div", { staticClass: "poster_img" }, [
                  e("img", {
                    staticClass: "poster",
                    attrs: { src: t.posterSrc },
                  }),
                ])
              : t._e(),
            e("div", { staticClass: "right right_background" }, [
              e("div", {
                ref: "mask",
                staticClass: "mask",
                class: "mask" + t.posterIndex,
              }),
              e("div", { staticClass: "buttonList" }, [
                e("button", {
                  staticClass: "button welfare",
                  on: {
                    click: function (e) {
                      return t.onClickWelfare();
                    },
                  },
                }),
                e("button", {
                  staticClass: "button reset",
                  on: {
                    click: function (e) {
                      return t.onClickAgain();
                    },
                  },
                }),
                e("div", { staticClass: "small_button" }, [
                  e(
                    "div",
                    {
                      staticClass: "button rule_wrapper",
                      on: {
                        click: function (e) {
                          return t.onClickRule();
                        },
                      },
                    },
                    [
                      e("div", { staticClass: "rule" }, [
                        t._v(t._s(t.ruleText)),
                      ]),
                      e("div", { staticClass: "border" }),
                    ],
                  ),
                  e(
                    "div",
                    {
                      staticClass: "button replace_wrapper",
                      on: {
                        click: function (e) {
                          return t.onClickReplace();
                        },
                      },
                    },
                    [
                      e("div", { staticClass: "replace" }, [
                        t._v(t._s(t.replaceText)),
                      ]),
                      e("div", { staticClass: "border" }),
                    ],
                  ),
                ]),
              ]),
              e("div", { staticClass: "username_wrapper" }, [
                e(
                  "div",
                  { ref: "prefixText", staticClass: "prefix_text" },
                  t._l(t.prefixText, function (i, s) {
                    return e("span", { key: i + s, staticClass: "text" }, [
                      t._v(" " + t._s(i) + " "),
                    ]);
                  }),
                  0,
                ),
                e(
                  "div",
                  { ref: "name", staticClass: "name_wrapper" },
                  t._l(t.username, function (i, s) {
                    return e("span", { key: i + s, staticClass: "name" }, [
                      t._v(" " + t._s(i) + " "),
                    ]);
                  }),
                  0,
                ),
              ]),
              t.imgText
                ? e("div", {
                    staticClass: "desc_wrapper imgText",
                    class: `textImg${t.posterIndex}-${t.random} textImgs`,
                  })
                : e("div", { staticClass: "desc_wrapper" }, [
                    e(
                      "div",
                      { staticClass: "text2_wrapper" },
                      t._l(t.desc[1], function (i, s) {
                        return e(
                          "span",
                          {
                            key: i + s,
                            ref: "text2",
                            refInFor: !0,
                            staticClass: "text",
                          },
                          [t._v(" " + t._s(i) + " ")],
                        );
                      }),
                      0,
                    ),
                    e("div", { ref: "topBorder", staticClass: "top_border" }),
                    e("div", {
                      staticClass: "hr",
                      style: `height:${t.rem(t.hrHeight)}rem`,
                    }),
                    e(
                      "div",
                      { staticClass: "text1_wrapper" },
                      t._l(t.desc[0], function (i, s) {
                        return e(
                          "span",
                          {
                            key: i + s,
                            ref: "text1",
                            refInFor: !0,
                            staticClass: "text",
                          },
                          [t._v(" " + t._s(i) + " ")],
                        );
                      }),
                      0,
                    ),
                    e("div", {
                      ref: "bottomBorder",
                      staticClass: "bottom_border",
                    }),
                  ]),
            ]),
            t.enablePoster
              ? t._e()
              : e("div", {
                  staticClass: "code",
                  class: "code" + t.posterIndex,
                }),
            t.enablePoster
              ? e("div", { staticClass: "tip", class: "tip" + t.posterIndex })
              : t._e(),
            t.enablePoster
              ? t._e()
              : e("div", {
                  staticClass: "copytip",
                  class: "copytip" + t.posterIndex,
                }),
            t.rule ? e("RuleAlert", { on: { close: t.close } }) : t._e(),
          ],
          1,
        );
      },
      He = [],
      qe = function () {
        var t = this,
          e = t._self._c;
        t._self._setupProxy;
        return e("div", { ref: "bindWrapper", staticClass: "bind_wrapper" }, [
          e(
            "div",
            {
              ref: "bind",
              staticClass: "bind_bg",
              attrs: { id: "input_wrapper" },
            },
            [
              e(
                "div",
                {
                  staticClass: "close_bt_wrapper",
                  on: {
                    click: function (e) {
                      return t.close();
                    },
                  },
                },
                [e("div", { staticClass: "close_bt" })],
              ),
              e("div", {
                staticClass: "bind_bt",
                attrs: { id: "bind_bt" },
                on: {
                  click: function (e) {
                    return t.bind();
                  },
                },
              }),
              e("div", { staticClass: "input_wrapper" }, [
                e(
                  "div",
                  {
                    staticClass: "area_select_wrapper select_wrapper",
                    attrs: { id: "area_select_wrapper" },
                  },
                  [
                    e(
                      "select",
                      {
                        staticClass: "my_select select",
                        attrs: { id: "area_select" },
                        on: {
                          click: function (e) {
                            return t.onClick();
                          },
                        },
                      },
                      [
                        e(
                          "option",
                          { attrs: { value: "", disabled: "", selected: "" } },
                          [t._v("请选择您的系统")],
                        ),
                      ],
                    ),
                    e("div", { staticClass: "select_down_icon" }),
                  ],
                ),
                e(
                  "div",
                  {
                    staticClass: "server_select_wrapper select_wrapper",
                    attrs: { id: "server_select_wrapper" },
                  },
                  [
                    e(
                      "select",
                      {
                        staticClass: "my_select select",
                        attrs: { id: "server_select" },
                        on: {
                          click: function (e) {
                            return t.onClick();
                          },
                        },
                      },
                      [
                        e(
                          "option",
                          { attrs: { value: "", disabled: "", selected: "" } },
                          [t._v("请选择您的大区")],
                        ),
                      ],
                    ),
                    e("div", { staticClass: "select_down_icon" }),
                  ],
                ),
                e(
                  "div",
                  {
                    staticClass: "role_select_wrapper select_wrapper",
                    attrs: { id: "role_select_wrapper" },
                  },
                  [
                    e(
                      "select",
                      {
                        staticClass: "my_select select",
                        attrs: { id: "role_select" },
                        on: {
                          click: function (e) {
                            return t.onClick();
                          },
                        },
                      },
                      [
                        e(
                          "option",
                          { attrs: { value: "", disabled: "", selected: "" } },
                          [t._v("请选择您的角色")],
                        ),
                      ],
                    ),
                    e("div", { staticClass: "select_down_icon" }),
                  ],
                ),
                e("div", {
                  staticClass: "warn_text",
                  attrs: { id: "warn_tip" },
                }),
              ]),
            ],
          ),
        ]);
      },
      Ye = [];
    let Ge = class extends r["c"] {
      mounted() {}
      anim() {
        const t = this.$refs.bind,
          e = u["a"].timeline(),
          i = { o: 0 };
        e.fromTo(
          t,
          { y: 100, opacity: 0 },
          { y: 0, opacity: 1, ease: "power3" },
        ).to(
          i,
          {
            o: 0.76,
            onUpdate: () => {
              const t = this.$refs.bindWrapper;
              t.style.backgroundColor = `rgba(0, 0, 0,${i.o})`;
            },
          },
          "<",
        );
      }
      close() {
        this.$emit("close");
      }
      onClick() {
        H.play("click");
      }
      bind() {
        (L("btn", "bindRole", ""), window.bindRole(), this.close());
      }
    };
    Ge = Object(a["a"])([Object(r["a"])({ components: {} })], Ge);
    var Xe = Ge,
      Qe = Xe,
      Je = (i("b252"), Object(w["a"])(Qe, qe, Ye, !1, null, "21583610", null)),
      Ke = Je.exports,
      Ze = function () {
        var t = this,
          e = t._self._c;
        t._self._setupProxy;
        return e("div", { staticClass: "welfareDialog fullscreen" }, [
          e("div", {
            ref: "background",
            staticClass: "background",
            on: {
              click: function (e) {
                return t.close();
              },
            },
          }),
          e("div", { ref: "dialog", staticClass: "welfareDialog_bg" }, [
            e("div", {
              staticClass: "button",
              on: {
                click: function (e) {
                  return t.next();
                },
              },
            }),
            e("div", {
              staticClass: "close_bt",
              on: {
                click: function (e) {
                  return t.close();
                },
              },
            }),
          ]),
        ]);
      },
      ti = [];
    let ei = class extends r["c"] {
      mounted() {
        this.anim();
      }
      anim() {
        const t = this.$refs.dialog,
          e = u["a"].timeline();
        e.fromTo(
          t,
          { y: 100, opacity: 0 },
          { y: 0, opacity: 1, ease: "power3" },
        ).fromTo(this.$refs.background, { opacity: 0 }, { opacity: 1 }, "<");
      }
      close() {
        H.play("click");
        const t = this.$refs.dialog,
          e = u["a"].timeline();
        e.fromTo(
          t,
          { y: 0, opacity: 1 },
          {
            y: 100,
            opacity: 0,
            ease: "power3",
            onComplete: () => {
              this.$emit("close");
            },
          },
        ).fromTo(this.$refs.background, { opacity: 1 }, { opacity: 0 }, "<");
      }
      next() {
        H.play("click");
        const t = this.$refs.dialog,
          e = u["a"].timeline();
        e.fromTo(
          t,
          { y: 0, opacity: 1 },
          {
            y: 100,
            opacity: 0,
            ease: "power3",
            onComplete: () => {
              this.$emit("next", "GetSuccess");
            },
          },
        ).fromTo(this.$refs.background, { opacity: 1 }, { opacity: 0 }, "<");
      }
    };
    ei = Object(a["a"])([Object(r["a"])({ components: {} })], ei);
    var ii = ei,
      si = ii,
      oi = (i("f79c"), Object(w["a"])(si, Ze, ti, !1, null, "46ff94ea", null)),
      ni = oi.exports,
      ai = function () {
        var t = this,
          e = t._self._c;
        t._self._setupProxy;
        return e("div", { staticClass: "rule_alert fullscreen" }, [
          e("div", {
            ref: "background",
            staticClass: "background",
            on: {
              click: function (e) {
                return t.close();
              },
            },
          }),
          e("div", { ref: "dialog", staticClass: "getSuccess_bg" }, [
            e("div", {
              staticClass: "close_bt",
              on: {
                click: function (e) {
                  return t.close();
                },
              },
            }),
          ]),
        ]);
      },
      ri = [];
    let li = class extends r["c"] {
      mounted() {
        this.anim();
      }
      anim() {
        const t = this.$refs.dialog,
          e = u["a"].timeline();
        e.fromTo(
          t,
          { y: 100, opacity: 0 },
          { y: 0, opacity: 1, ease: "power3" },
        ).fromTo(this.$refs.background, { opacity: 0 }, { opacity: 1 }, "<");
      }
      close() {
        H.play("click");
        const t = this.$refs.dialog,
          e = u["a"].timeline();
        e.fromTo(
          t,
          { y: 0, opacity: 1 },
          {
            y: 100,
            opacity: 0,
            ease: "power3",
            onComplete: () => {
              this.$emit("close");
            },
          },
        ).fromTo(this.$refs.background, { opacity: 1 }, { opacity: 0 }, "<");
      }
    };
    li = Object(a["a"])([Object(r["a"])({ components: {} })], li);
    var ci = li,
      hi = ci,
      di = (i("d30e"), Object(w["a"])(hi, ai, ri, !1, null, "05aacc29", null)),
      ui = di.exports,
      pi = function () {
        var t = this,
          e = t._self._c;
        t._self._setupProxy;
        return e("div", { staticClass: "rule_alert fullscreen" }, [
          e("div", {
            ref: "background",
            staticClass: "background",
            on: {
              click: function (e) {
                return t.close();
              },
            },
          }),
          e("div", { ref: "rule", staticClass: "rule" }, [
            e("div", { staticClass: "rule_bg" }),
            e("div", {
              staticClass: "close_bt",
              on: {
                click: function (e) {
                  return t.close();
                },
              },
            }),
          ]),
        ]);
      },
      mi = [];
    let fi = class extends r["c"] {
      mounted() {
        this.anim();
      }
      anim() {
        const t = this.$refs.rule,
          e = u["a"].timeline();
        e.fromTo(
          t,
          { y: 100, opacity: 0 },
          { y: 0, opacity: 1, ease: "power3" },
        ).fromTo(this.$refs.background, { opacity: 0 }, { opacity: 1 }, "<");
      }
      close() {
        H.play("click");
        const t = this.$refs.rule,
          e = u["a"].timeline();
        e.fromTo(
          t,
          { y: 0, opacity: 1 },
          {
            y: 100,
            opacity: 0,
            ease: "power3",
            onComplete: () => {
              this.$emit("close");
            },
          },
        ).fromTo(this.$refs.background, { opacity: 1 }, { opacity: 0 }, "<");
      }
    };
    fi = Object(a["a"])([Object(r["a"])({ components: {} })], fi);
    var gi = fi,
      vi = gi,
      wi = (i("4d5e"), Object(w["a"])(vi, pi, mi, !1, null, "dabb7672", null)),
      yi = wi.exports,
      xi = function () {
        var t = this,
          e = t._self._c;
        t._self._setupProxy;
        return e("div", { staticClass: "save_poster" }, [
          e("div", { staticClass: "scenecanvas" }, [
            e("canvas", {
              ref: "canvas",
              attrs: { width: t.width, height: t.height },
            }),
          ]),
        ]);
      },
      bi = [];
    let Pi = class extends r["c"] {
      constructor() {
        (super(...arguments),
          (this.height = 1816),
          (this.width = 1280),
          (this.baseUrl =
            "images/savePoster"),
          (this.posterSrc = "#"),
          (this.qrCode = ""),
          (this.imagesData = [
            {
              url: this.baseUrl + `/posterBg${this.posterId}.jpg`,
              width: 1280,
              height: 1816,
              x: 0,
              y: 0,
            },
          ]),
          (this.fontHeight = 45));
      }
      get canvas() {
        return this.$refs.canvas;
      }
      get posterId() {
        return this.$store.state.posterIndex;
      }
      get username() {
        return this.$store.state.user.username;
      }
      get posterId1_0() {
        return 1 == this.posterId && 0 == this.random;
      }
      mounted() {
        setTimeout(() => {
          this.init();
        }, 100);
      }
      init() {
        (this.posterId1_0 &&
          (this.imagesData[0].url = this.baseUrl + "/posterBg1-0.jpg"),
          Promise.all([this.preloadImgs()]).then((t) => {
            setTimeout(() => {
              (console.log("开始绘制"), this.drawCanvas(), this.createPoster());
            }, 200);
          }));
      }
      onUsernameChange() {
        (console.log("更新海报"),
          setTimeout(() => {
            this.refreshPoster();
          }, 100));
      }
      refreshPoster() {
        (this.posterId1_0 &&
          (this.imagesData[0].url = this.baseUrl + "/posterBg1-0.jpg"),
          this.drawCanvas(),
          this.createPoster());
      }
      loadImage(t) {
        return new Promise((e) => {
          const i = new Image();
          ((i.onload = () => {
            e(i);
          }),
            (i.crossOrigin = "Anonymous"),
            i.setAttribute("crossOrigin", "Anonymous"),
            (i.src = t));
        });
      }
      preloadImgs() {
        const t = [];
        return (
          this.imagesData.map((e) => {
            t.push(this.loadImage(e.url));
          }),
          Promise.all(t).then((t) => {
            (t.map((t, e) => {
              (console.log("资源:", t), (this.imagesData[e].img = t));
            }),
              console.log("加载完所有的资源"));
          })
        );
      }
      drawCanvas() {
        const t = this.$refs.canvas;
        this.c = t;
        const e = t.getContext("2d");
        e
          ? ((e.fillStyle = "#FFFFFF"),
            e.fillRect(0, 0, this.width, this.height),
            this.imagesData.map((t) => {
              t.img &&
                (console.log("drawImg", t.img),
                e.drawImage(t.img, t.x, t.y, t.width, t.height));
            }),
            this.drawName(e),
            this.posterId1_0 || this.drawDesc(e),
            this.qrCode &&
              (console.log("drawQR", this.qrCode),
              e.drawImage(this.qrCode, 679, 2165, 140, 140)))
          : console.error("画布不存在");
      }
      createPoster() {
        const t = this.canvas.toDataURL("image/jpeg");
        ((this.posterSrc = t),
          console.log(this),
          this.$emit("createPoster", t));
      }
      drawName(t) {
        ((t.textAlign = "center"),
          (t.font = "61.76px sans-serif"),
          (t.fillStyle = "#b4711e"),
          t.fillText("" + this.username, 640, this.fontHeight + 1090.08));
      }
      drawDesc(t) {
        ((t.textAlign = "center"),
          (t.font = "52.58px hwmct"),
          (t.fillStyle = "#b4711e"),
          t.fillText(
            `${this.desc[0]}  ${this.desc[1]}`,
            640,
            this.fontHeight + 1309.91,
          ));
      }
    };
    (Object(a["a"])(
      [Object(r["b"])({ default: ["", ""] })],
      Pi.prototype,
      "desc",
      void 0,
    ),
      Object(a["a"])(
        [Object(r["b"])({ default: 0 })],
        Pi.prototype,
        "random",
        void 0,
      ),
      Object(a["a"])(
        [Object(r["d"])("username", { deep: !0 })],
        Pi.prototype,
        "onUsernameChange",
        null,
      ),
      (Pi = Object(a["a"])([Object(r["a"])({ components: {} })], Pi)));
    var Ti = Pi,
      _i = Ti,
      Si = (i("8051"), Object(w["a"])(_i, xi, bi, !1, null, "4d02be1d", null)),
      Ci = Si.exports,
      ki = function () {
        var t = this,
          e = t._self._c;
        t._self._setupProxy;
        return e(
          "div",
          {
            ref: "videoWrapper",
            staticClass: "video_wrapper",
            class: "video" + t.index,
          },
          [
            e("video", {
              ref: "video",
              staticClass: "video",
              attrs: {
                src: t.videoSrc,
                width: t.width,
                height: t.height,
                preload: "auto",
                playsinline: "true",
                "webkit-playsinline": "true",
                "x5-video-player-type": "h5",
                "x5-video-orientation": "portraint",
                "x5-video-player-fullscreen": "false",
                airplay: "allow",
                "x-webkit-airplay": "allow",
                poster: t.videoPoster,
              },
            }),
          ],
        );
      },
      Ii = [];
    let Mi = class extends r["c"] {
      constructor() {
        (super(...arguments),
          (this.isDEV = !0),
          (this.timer = 0),
          (this.audoPlayHander = null),
          (this.isClose = !1));
      }
      get video() {
        return this.$refs.video;
      }
      get videoPoster() {
        return `images/videoPoster/poster${this.index}.jpg`;
      }
      mounted() {
        (console.log("videoNoController: ", this.videoSrc),
          this.initVideo(),
          this.isAutoPlay && this.play());
      }
      initVideo() {
        ((this.player = new MMD.VideoPlayer({
          videoElement: this.video,
          src: this.videoSrc,
          loop: !1,
          muted: !1,
          tryMultipleVideoPlayAtTheSameTime: !1,
          timesParam: [],
          onTimes: (t) => {},
          onStart: () => {
            this.$emit("onStart");
          },
          onEnd: () => {
            console.log("video end");
          },
        })),
          this.loopParam && this.loopParam.length > 1 && this.setTimer());
      }
      play() {
        (console.log("play"), this.player.play());
      }
      autoPlay() {
        (console.log("audoPlay"), this.player.play());
      }
      closeVideo() {
        ((this.isClose = !0), this.$emit("close"));
      }
      setTimer() {
        this.timer = setInterval(() => {
          if (this.isClose)
            return (
              console.log("isClose:", this.isClose),
              void clearInterval(this.timer)
            );
          this.video.currentTime >= this.loopParam[0] &&
            ((this.player.currentTimeAndPlay = this.loopParam[1]),
            this.player.play());
        }, 15);
      }
      setStartTime(t) {
        this.player.currentTimeAndPause = t;
      }
    };
    (Object(a["a"])(
      [Object(r["b"])({ default: 0 })],
      Mi.prototype,
      "index",
      void 0,
    ),
      Object(a["a"])(
        [Object(r["b"])({ default: !0 })],
        Mi.prototype,
        "anim",
        void 0,
      ),
      Object(a["a"])(
        [Object(r["b"])({ default: !0 })],
        Mi.prototype,
        "muted",
        void 0,
      ),
      Object(a["a"])(
        [Object(r["b"])({ default: !1 })],
        Mi.prototype,
        "isAutoPlay",
        void 0,
      ),
      Object(a["a"])(
        [Object(r["b"])({ default: 0 })],
        Mi.prototype,
        "startTime",
        void 0,
      ),
      Object(a["a"])(
        [Object(r["b"])({ default: 750 })],
        Mi.prototype,
        "width",
        void 0,
      ),
      Object(a["a"])(
        [Object(r["b"])({ default: 346 })],
        Mi.prototype,
        "height",
        void 0,
      ),
      Object(a["a"])(
        [Object(r["b"])({ default: "" })],
        Mi.prototype,
        "videoSrc",
        void 0,
      ),
      Object(a["a"])(
        [Object(r["b"])({ default: [] })],
        Mi.prototype,
        "loopParam",
        void 0,
      ),
      (Mi = Object(a["a"])([Object(r["a"])({})], Mi)));
    var Oi = Mi,
      Fi = Oi,
      Ai = (i("d910"), Object(w["a"])(Fi, ki, Ii, !1, null, "3eb64c19", null)),
      Ei = Ai.exports;
    let ji = class extends r["c"] {
      constructor() {
        (super(...arguments),
          (this.resetText = "种植更多"),
          (this.welfareText = "领取福利"),
          (this.ruleText = "活动规则"),
          (this.replaceText = "更换账号"),
          (this.dialogSwicth = ""),
          (this.prefixText = "获得了鬼谷子的祝福"),
          (this.descList = {
            0: [
              ["潇洒驰骋在峡谷", "如有神助一打五"],
              ["五杀拿到手抽筋", "连胜上分一起赢"],
            ],
            1: [
              ["红蓝BUFF有人让", "敌方技能队友扛"],
              ["身后永远有队友", "节奏起飞不发愁"],
            ],
            2: [
              ["BUFF不会少", "兵线吃饱饱"],
              ["顺风顺水顺经济", "永远没有逆风局"],
            ],
            3: [
              ["对线没人抓", "发育顶呱呱"],
              ["队友逆风不投", "把把顺风不浪"],
            ],
            4: [
              ["车队永远不缺人", "一起上分就是稳"],
              ["峡谷放心飞", "队友永相随"],
            ],
            5: [
              ["走到哪都有人头收", "打团发育全不用愁"],
              ["局局大腿带躺", "看遍峡谷风光"],
            ],
            6: [
              ["把把排到好队友", "和和气气上大分"],
              ["排位一直连胜", "巅峰把把吃分"],
            ],
          }),
          (this.hrHeight = 0),
          (this.rule = !1),
          (this.random = Math.round(Math.random())),
          (this.showLogin = !1),
          (this.posterSrc = ""));
      }
      get videoSrc() {
        return `media/poster${this.posterIndex}.mp4`;
      }
      get username() {
        return this.$store.state.user.username;
      }
      get imgText() {
        return (
          (1 == this.posterIndex && 0 == this.random) ||
          (2 == this.posterIndex && 0 == this.random) ||
          !!this.iosVersion
        );
      }
      get imgTextTwo() {
        if (
          (1 == this.posterIndex && 0 == this.random) ||
          (2 == this.posterIndex && 0 == this.random)
        )
          return !0;
      }
      get enablePoster() {
        return this.$store.state.enablePoster;
      }
      get desc() {
        return this.descList[this.posterIndex][this.random];
      }
      get iosVersion() {
        return (
          this.$store.state.iosVersion > -1 && this.$store.state.iosVersion < 15
        );
      }
      get posterIndex() {
        return this.$store.state.posterIndex;
      }
      rem(t) {
        return (t / 75) * 0.5;
      }
      mounted() {
        if (this.imgText) {
          const t = u["a"].timeline();
          t.fromTo(
            this.$refs.textImg,
            { opacity: 0 },
            { opacity: 1, delay: 1 },
          );
        } else this.initTextAnim();
      }
      initTextAnim() {
        const t = u["a"].timeline(),
          e = (this.$refs.username, this.$refs.border),
          i = this.$refs.topBorder,
          s = this.$refs.bottomBorder,
          o = (this.$refs.prefixText, this.$refs.text1),
          n = this.$refs.text2;
        t.fromTo(e, { opacity: 0 }, { opacity: 1 })
          .fromTo(i, { opacity: 0 }, { opacity: 1 }, "-=0.2")
          .fromTo(o, { opacity: 0 }, { opacity: 1, stagger: 0.2 })
          .to(this, { hrHeight: 163, duration: 2 }, "-=0.5")
          .fromTo(n, { opacity: 0 }, { opacity: 1, stagger: 0.2 }, "<+0.5")
          .fromTo(s, { opacity: 0 }, { opacity: 1 }, "-=0.2");
      }
      onClickWelfare() {
        (H.play("click"), this.$emit("getWelfare"));
      }
      onClickAgain() {
        (H.play("click"), this.$emit("again"));
      }
      onClickRule() {
        (H.play("click"), (this.rule = !0), L("btn", "rule", "活动规则"));
      }
      onClickReplace() {
        (H.play("click"), window.showBindRoleDialog());
      }
      close(t) {
        ((this.rule = !1), (this.dialogSwicth = ""));
      }
      next(t) {
        this.dialogSwicth = t;
      }
      createPoster(t) {
        this.posterSrc = t;
      }
    };
    ji = Object(a["a"])(
      [
        Object(r["a"])({
          components: {
            BindDialog: Ke,
            WelfareDialog: ni,
            GetSuccessAlert: ui,
            RuleAlert: yi,
            SavePoster: Ci,
            PosterVideo: Ei,
          },
        }),
      ],
      ji,
    );
    var $i,
      zi = ji,
      Di = zi,
      Li = (i("c6e0"), Object(w["a"])(Di, Re, He, !1, null, "79a58929", null)),
      Vi = Li.exports,
      Wi = function () {
        var t = this,
          e = t._self._c;
        t._self._setupProxy;
        return e("div", { staticClass: "renderer_wrapper fullscreen" }, [
          e("canvas", { ref: "canvas", class: "fullscreen" }),
          e("div", { staticClass: "overlay fullscreen" }),
        ]);
      },
      Ui = [],
      Ni = i("2132");
    (function (t) {
      ((t[(t["TEX"] = 0)] = "TEX"), (t[(t["RGBE"] = 1)] = "RGBE"));
    })($i || ($i = {}));
    class Bi {
      constructor() {
        ((this.texLoader = new E["Ab"]()),
          (this.texMap = {
            noise: {
              url: "textures/noise.png?v1",
              type: $i.TEX,
              res: null,
              wrapS: E["S"],
              wrapT: E["S"],
              priority: 0,
            },
            dust: {
              url: "textures/dust.png?v1",
              type: $i.TEX,
              res: null,
              wrapS: E["S"],
              wrapT: E["S"],
              priority: 0,
            },
            light: {
              url: "textures/light.png?v1",
              type: $i.TEX,
              res: null,
              wrapS: E["S"],
              wrapT: E["S"],
              priority: 0,
            },
            cowWalk: {
              url: "textures/cowWalk.png?v1",
              type: $i.TEX,
              res: null,
              wrapS: E["S"],
              wrapT: E["S"],
              priority: 0,
            },
            cowWait: {
              url: "textures/cowWait.png?v1",
              type: $i.TEX,
              res: null,
              wrapS: E["S"],
              wrapT: E["S"],
              priority: 0,
            },
            soil: {
              url: "textures/soil.png?v1",
              type: $i.TEX,
              res: null,
              wrapS: E["S"],
              wrapT: E["S"],
              priority: 0,
            },
            godWave: {
              url: "textures/godWave.png?v1",
              type: $i.TEX,
              res: null,
              wrapS: E["S"],
              wrapT: E["S"],
              priority: 0,
            },
            godWait: {
              url: "textures/godWait.png?v1",
              type: $i.TEX,
              res: null,
              wrapS: E["S"],
              wrapT: E["S"],
              priority: 0,
            },
            ggzWait: {
              url: "textures/ggzWait.png?v1",
              type: $i.TEX,
              res: null,
              wrapS: E["S"],
              wrapT: E["S"],
              priority: 0,
            },
            ggzWalk: {
              url: "textures/ggzWalk.png?v1",
              type: $i.TEX,
              res: null,
              wrapS: E["S"],
              wrapT: E["S"],
              priority: 0,
            },
            ggzWave: {
              url: "textures/ggzWave.png?v1",
              type: $i.TEX,
              res: null,
              wrapS: E["S"],
              wrapT: E["S"],
              priority: 0,
            },
            ripple: {
              url: "textures/ripple.png?v1",
              type: $i.TEX,
              res: null,
              wrapS: E["S"],
              wrapT: E["S"],
              priority: 0,
            },
            rice0: {
              url: "textures/rice0.png?v1",
              type: $i.TEX,
              res: null,
              wrapS: E["S"],
              wrapT: E["S"],
              priority: 0,
            },
            rice1: {
              url: "textures/rice1.png?v1",
              type: $i.TEX,
              res: null,
              wrapS: E["S"],
              wrapT: E["S"],
              priority: 0,
            },
            rice2: {
              url: "textures/rice2.png?v1",
              type: $i.TEX,
              res: null,
              wrapS: E["S"],
              wrapT: E["S"],
              priority: 0,
            },
            drop0: {
              url: "textures/Drop-0.png?v1",
              type: $i.TEX,
              res: null,
              wrapS: E["S"],
              wrapT: E["S"],
              priority: 0,
            },
            drop1: {
              url: "textures/Drop-1.png?v1",
              type: $i.TEX,
              res: null,
              wrapS: E["S"],
              wrapT: E["S"],
              priority: 0,
            },
            drop2: {
              url: "textures/Drop-2.png?v1",
              type: $i.TEX,
              res: null,
              wrapS: E["S"],
              wrapT: E["S"],
              priority: 0,
            },
            drop3: {
              url: "textures/Drop-3.png?v1",
              type: $i.TEX,
              res: null,
              wrapS: E["S"],
              wrapT: E["S"],
              priority: 0,
            },
            drop4: {
              url: "textures/Drop-4.png?v1",
              type: $i.TEX,
              res: null,
              wrapS: E["S"],
              wrapT: E["S"],
              priority: 0,
            },
          }),
          this.initStoreRes());
      }
      async init(t) {
        ((this.renderer = t), this.loadPriority(-1));
      }
      async loadPriority(t) {
        let e = [];
        for (const i in this.texMap) {
          const s = this.texMap[i];
          (s.priority !== t && -1 !== t) || e.push(s);
        }
        for (let i = 0; i < e.length; i++) {
          const t = e[i];
          await this.loadByType(t);
        }
      }
      initStoreRes() {
        for (const t in this.texMap) {
          const e = this.texMap[t];
          !1 !== e.preload && this.updateProgress(e.url, 0);
        }
      }
      loadByType(t) {
        return t.type === $i.TEX
          ? this.loadTex(t)
          : t.type === $i.RGBE
            ? this.loadHDR(t)
            : Promise.resolve(null);
      }
      loadTex(t) {
        return new Promise((e) => {
          t.res = this.texLoader.load(
            "./" + t.url,
            (i) => {
              ((i.name = t.url),
                !1 !== t.preload && this.updateProgress(t.url, 1),
                (i.wrapS = t.wrapS ? t.wrapS : E["ob"]),
                (i.wrapT = t.wrapT ? t.wrapT : E["ob"]),
                (i.encoding = t.encoding ? t.encoding : i.encoding),
                (i.magFilter = E["F"]),
                (i.minFilter = E["F"]),
                (i.needsUpdate = !0),
                e(i));
            },
          );
        });
      }
      loadHDR(t) {
        return new Promise((e) => {
          const i = new E["ab"](this.renderer);
          (i.compileEquirectangularShader(),
            new Ni["a"]().setDataType(E["Db"]).load(t.url, (s) => {
              !1 !== t.preload && this.updateProgress(t.url, 1);
              const o = i.fromEquirectangular(s);
              ((t.res = o.texture),
                (t.res.name = t.url),
                s.dispose(),
                i.dispose(),
                e(o.texture));
            }));
        });
      }
      updateProgress(t, e) {
        A.commit("UpdateResLoadProgress", { id: t, progress: e });
      }
      get(t) {
        const e = this.texMap[t];
        return e ? (e.res || this.loadByType(e), e.res) : null;
      }
    }
    var Ri = new Bi();
    class Hi {
      constructor(t) {
        ((this.size = new E["Eb"]()),
          (this.pixelRatio =
            window.devicePixelRatio > 2 ? 2 : window.devicePixelRatio),
          (this.audioConfig = {}),
          (this.mats = []),
          (this.texs = []),
          (this.geos = []),
          (this.renderer = t),
          this.renderer.getSize(this.size),
          (this.pixelRatio = this.renderer.getPixelRatio()));
      }
      get needRotate() {
        return A.state.needRotate;
      }
      get width() {
        return this.size.x;
      }
      get height() {
        return this.size.y;
      }
      getScreenPos(t) {
        const e = new E["Eb"]();
        return (
          this.needRotate
            ? ((e.x = t.pageY), (e.y = this.height - t.pageX))
            : ((e.x = t.pageX), (e.y = t.pageY)),
          e
        );
      }
      screenPosToUv(t) {
        let e = t.clone().divide(new E["Eb"](this.width, this.height));
        return ((e.y = 1 - e.y), e);
      }
      onWindowResize() {
        (this.renderer.getSize(this.size),
          (this.pixelRatio = this.renderer.getPixelRatio()));
      }
      onTouchStart(t) {}
      onTouchMove(t) {}
      onTouchEnd(t) {}
      onMouseDown(t) {}
      onMouseMove(t) {}
      onMouseUp(t) {}
      onClick(t) {}
      reset() {}
      anim(t, e) {}
      updateProgress(t, e) {
        A.commit("UpdateResLoadProgress", { id: t, progress: e });
      }
      stopAllAudio() {
        const t = Object.keys(this.audioConfig);
        t.forEach((t) => {
          this.audioConfig[t];
          const e = H.playing(t);
          e && H.stop(t);
        });
      }
      processAudio(t) {
        const e = Object.keys(this.audioConfig);
        e.forEach((e) => {
          const i = this.audioConfig[e],
            s = H.playing(e);
          let o = !1;
          (i.forEach((e) => {
            t >= e[0] && t <= e[1] && (o = !0);
          }),
            o && !s ? H.play(e) : !o && s && H.stop(e));
        });
      }
      dispose(t) {
        console.log("baseScene", this.geos, this.mats, this.texs);
        try {
          (this.geos.forEach((t) =>
            null === t || void 0 === t ? void 0 : t.dispose(),
          ),
            this.mats.forEach((t) =>
              null === t || void 0 === t ? void 0 : t.dispose(),
            ),
            this.texs.forEach((t) =>
              null === t || void 0 === t ? void 0 : t.dispose(),
            ));
        } catch (e) {
          console.log("Error when dispose");
        }
      }
    }
    var qi = Hi,
      Yi = i("34ad"),
      Gi = i("9e21"),
      Xi = i.n(Gi),
      Qi = i("d7c5"),
      Ji = i.n(Qi),
      Ki = i("55d6"),
      Zi = i.n(Ki),
      ts = i("1fb3"),
      es = i.n(ts);
    class is {
      constructor(t, e, i, s = 1, o = !0) {
        ((this.myTime = 0),
          (this.isAnim = !1),
          (this.isFall = !1),
          (this.isFallAnim = !1),
          (this.lifeProgress = 0),
          (this.direction = -1),
          (this.speed = new E["Eb"]()),
          (this.nodePos = []),
          (this.offsetArr = []),
          (this.nodeSpeed = []),
          (this.opacity = 1),
          (this.maxY = 0),
          (this.minY = 0),
          (this.disappear = !1),
          (this.debugBalls = []),
          (this.factors = []),
          (this.nodeSpeedTest = []),
          (this.wheat = t),
          (this.scene = i),
          (this.random = e),
          (this.opacity = s));
        const n = t.geometry.attributes.position,
          a = [];
        for (let l = 0, c = n.count; l < c; l += 1) {
          const t = new E["Fb"]();
          (t.fromBufferAttribute(n, l), a.push(new E["Eb"](t.x, t.y)));
        }
        const r = a.sort((t, e) => t.y - e.y);
        ((this.maxY = a[r.length - 1].y),
          (this.minY = a[0].y),
          this.nodePos.push(a[0]));
        for (let l = 1; l < a.length; l++) {
          let t = !0;
          for (let e = 0; e < this.nodePos.length; e++)
            Math.abs(a[l].y - this.nodePos[e].y) < 0.001 && (t = !1);
          t && this.nodePos.push(a[l].clone());
        }
        (this.nodePos.forEach((t) => {
          ((t.x = 0),
            this.nodeSpeed.push(new E["Eb"]()),
            this.offsetArr.push(new E["Eb"]()));
        }),
          (this.nodePos = this.nodePos.sort((t, e) => t.y - e.y)),
          this.initMaterial());
      }
      initMaterial() {
        const t = this.wheat.material,
          e = t.map;
        ((this.uniforms = {
          map: { value: e },
          opacity: { value: this.opacity },
          random: { value: this.random },
          nodePosArr: { value: this.nodePos },
          offsetArr: { value: this.offsetArr },
          minY: { value: this.minY },
          maxY: { value: this.maxY },
          isFall: { value: this.isFall },
          time: { value: 0 },
        }),
          (this.wheat.material = new E["qb"]({
            vertexShader: Zi.a,
            fragmentShader: es.a,
            uniforms: this.uniforms,
            transparent: !0,
            side: E["r"],
          })),
          this.scene.add(this.wheat));
      }
      initDebug() {
        for (let t = 0; t < this.offsetArr.length; t++) {
          const t = new E["O"](
            new E["ub"](0.05, 4, 4),
            new E["P"]({
              color: 16711680,
              opacity: this.opacity,
              transparent: !0,
              depthWrite: !1,
            }),
          );
          (this.debugBalls.push(t), this.scene.add(t));
        }
      }
      setFall(t) {
        if (!this.isFall) {
          ((this.speed = t.clone()),
            (this.isFall = !0),
            (this.uniforms.isFall.value = this.isFall),
            (this.isFallAnim = !0));
          for (let e = 0; e < this.nodeSpeed.length; e++) {
            let i = E["M"].mapLinear(e, 0, this.nodeSpeed.length - 1, 1, 0.5);
            const s = 1.2;
            this.nodeSpeed[e] = t.clone().multiplyScalar(5.5 * Math.pow(i, s));
          }
        }
      }
      updateNodes(t) {
        this.offsetArr[this.offsetArr.length - 1].y < -30 &&
          (this.isFallAnim = !1);
        const e = new E["Eb"](0, -9.8);
        for (let i = 0; i < 3; i++)
          for (let s = 0; s < this.nodePos.length; s++) {
            const i = 5;
            let o = new E["Eb"]();
            const n = this.nodePos[s].clone().add(this.offsetArr[s]);
            if (0 != s) {
              const t = this.nodePos[s - 1].clone().add(this.offsetArr[s - 1]),
                e = t.distanceTo(n),
                i = this.nodePos[s - 1].distanceTo(this.nodePos[s]);
              o.add(
                new E["Eb"]()
                  .subVectors(t, n)
                  .normalize()
                  .multiplyScalar(e - i),
              );
            }
            if (s < this.nodePos.length - 1) {
              const t = this.nodePos[s + 1].clone().add(this.offsetArr[s + 1]),
                e = t.distanceTo(n),
                i = this.nodePos[s + 1].distanceTo(this.nodePos[s]);
              o.add(
                new E["Eb"]()
                  .subVectors(t, n)
                  .normalize()
                  .multiplyScalar(e - i),
              );
            }
            (o.multiplyScalar(i),
              o.add(e),
              this.nodeSpeed[s].addScaledVector(o, t),
              this.nodeSpeed[s].multiplyScalar(0.98),
              this.offsetArr[s].addScaledVector(this.nodeSpeed[s], t));
          }
        for (let i = 0; i < 4; i++)
          for (let t = 0; t < this.nodePos.length; t++) {
            const e = this.nodePos[t].clone().add(this.offsetArr[t]);
            if (0 != t) {
              const i = this.nodePos[t - 1].clone().add(this.offsetArr[t - 1]),
                s = this.nodePos[t].distanceTo(this.nodePos[t - 1]),
                o = new E["Eb"]().subVectors(i, e),
                n = o.length();
              (o.multiplyScalar(n - s),
                this.offsetArr[t].addScaledVector(o, 0.3));
            }
            if (t < this.nodePos.length - 1) {
              const i = this.nodePos[t + 1].clone().add(this.offsetArr[t + 1]),
                s = this.nodePos[t].distanceTo(this.nodePos[t + 1]),
                o = new E["Eb"]().subVectors(i, e),
                n = o.length();
              (o.multiplyScalar(n - s),
                this.offsetArr[t].addScaledVector(o, 0.3));
            }
          }
      }
      anim(t, e, i) {
        if (((this.uniforms.time.value = t), this.isFallAnim))
          for (let s = 0; s < 1; s++) this.updateNodes(e);
        (this.disappear &&
          ((this.uniforms.opacity.value = Math.max(
            0,
            this.uniforms.opacity.value - e,
          )),
          0 == this.uniforms.opacity.value && (this.disappear = !1)),
          this.debugBalls.forEach((t, e) => {
            const i = new E["Eb"]().addVectors(
              this.nodePos[e],
              this.offsetArr[e],
            );
            t.position.set(i.x, i.y, 0);
          }));
      }
      dispose() {
        var t, e;
        (null === (t = this.wheat.geometry) || void 0 === t || t.dispose(),
          null === (e = this.wheat.material) || void 0 === e || e.dispose());
      }
    }
    var ss = is,
      os = i("36cc"),
      ns = i.n(os);
    class as {
      constructor(t, e, i, s = 1, o = !0) {
        ((this.myTime = 0),
          (this.isAnim = !1),
          (this.isFall = !1),
          (this.isFallAnim = !1),
          (this.lifeProgress = 0),
          (this.direction = -1),
          (this.speed = new E["Eb"]()),
          (this.nodePos = []),
          (this.offsetArr = []),
          (this.nodeSpeed = []),
          (this.opacity = 1),
          (this.maxY = 0),
          (this.minY = 0),
          (this.disappear = !1),
          (this.debugBalls = []),
          (this.opactiy = 1),
          (this.wheat = t),
          (this.scene = i),
          (this.random = e),
          (this.opacity = s));
        const n = t.geometry.attributes.position,
          a = [];
        for (let l = 0, c = n.count; l < c; l += 1) {
          const t = new E["Fb"]();
          (t.fromBufferAttribute(n, l), a.push(new E["Eb"](t.x, t.y)));
        }
        const r = a.sort((t, e) => t.y - e.y);
        ((this.maxY = a[r.length - 1].y),
          (this.minY = a[0].y),
          this.nodePos.push(a[0]));
        for (let l = 1; l < a.length; l++) {
          let t = !0;
          for (let e = 0; e < this.nodePos.length; e++)
            Math.abs(a[l].y - this.nodePos[e].y) < 0.001 && (t = !1);
          t && this.nodePos.push(a[l].clone());
        }
        (this.nodePos.forEach((t) => {
          ((t.x = 0),
            this.nodeSpeed.push(new E["Eb"]()),
            this.offsetArr.push(new E["Eb"]()));
        }),
          (this.nodePos = this.nodePos.sort((t, e) => e.y - t.y)),
          this.initMaterial());
      }
      initMaterial() {
        const t = this.wheat.material,
          e = t.map;
        ((this.uniforms = {
          map: { value: e },
          opacity: { value: this.opacity },
          random: { value: this.random },
          nodePosArr: { value: this.nodePos },
          offsetArr: { value: this.offsetArr },
          minY: { value: this.minY },
          maxY: { value: this.maxY },
          isFall: { value: this.isFall },
          time: { value: 0 },
        }),
          (this.wheat.material = new E["qb"]({
            vertexShader: ns.a,
            fragmentShader: es.a,
            uniforms: this.uniforms,
            transparent: !0,
            side: E["r"],
          })),
          this.scene.add(this.wheat));
      }
      initDebug() {
        for (let t = 0; t < this.offsetArr.length; t++) {
          const t = new E["O"](
            new E["ub"](0.05, 4, 4),
            new E["P"]({
              color: 16711680,
              opacity: this.opacity,
              transparent: !0,
              depthWrite: !1,
            }),
          );
          (this.debugBalls.push(t), this.scene.add(t));
        }
      }
      setFall(t) {
        if (!this.isFall) {
          ((this.speed = t.clone()),
            (this.isFall = !0),
            (this.uniforms.isFall.value = this.isFall),
            (this.isFallAnim = !0));
          for (let e = 0; e < this.nodeSpeed.length; e++) {
            let i = E["M"].mapLinear(e, 0, this.nodeSpeed.length - 1, 1, 0);
            this.nodeSpeed[e] = t.clone().multiplyScalar(Math.pow(i, 2));
          }
        }
      }
      updateNodes(t, e) {
        for (let i = 0; i < 5; i++)
          for (let t = 0; t < this.nodePos.length; t++) {
            const i = 5;
            let s = new E["Eb"]();
            const o = this.nodePos[t].clone().add(this.offsetArr[t]);
            if (0 != t) {
              const e = this.nodePos[t - 1].clone().add(this.offsetArr[t - 1]),
                i = e.distanceTo(o),
                n = this.nodePos[t - 1].distanceTo(this.nodePos[t]);
              s.add(
                new E["Eb"]()
                  .subVectors(e, o)
                  .normalize()
                  .multiplyScalar(i - n),
              );
            }
            if (t < this.nodePos.length - 1) {
              const e = this.nodePos[t + 1].clone().add(this.offsetArr[t + 1]),
                i = e.distanceTo(o),
                n = this.nodePos[t + 1].distanceTo(this.nodePos[t]);
              s.add(
                new E["Eb"]()
                  .subVectors(e, o)
                  .normalize()
                  .multiplyScalar(i - n),
              );
            }
            (s.multiplyScalar(i),
              this.nodeSpeed[t].addScaledVector(s, e),
              this.nodeSpeed[t].multiplyScalar(0.99),
              this.offsetArr[t].addScaledVector(this.nodeSpeed[t], e));
          }
        for (let i = 0; i < this.offsetArr.length; i++) {
          const t = 3;
          this.offsetArr[i].multiplyScalar(Math.pow(0.8, t));
        }
        Math.abs(this.offsetArr[0].x) < 1e-4 && (this.isFallAnim = !1);
      }
      anim(t, e, i) {
        ((this.uniforms.time.value = t),
          this.isFallAnim &&
            ((this.opacity =
              this.opacity - 0.5 * e <= 0 ? 0 : this.opacity - 0.5 * e),
            (this.uniforms.opacity.value = this.opacity),
            this.updateNodes(t, e)),
          this.disappear &&
            ((this.uniforms.opacity.value = Math.max(
              0,
              this.uniforms.opacity.value - e,
            )),
            0 == this.uniforms.opacity.value && (this.disappear = !1)),
          this.debugBalls.forEach((t, e) => {
            const i = new E["Eb"]().addVectors(
              this.nodePos[e],
              this.offsetArr[e],
            );
            t.position.set(i.x, i.y, 0);
          }));
      }
      dispose() {
        var t, e;
        (null === (t = this.wheat.geometry) || void 0 === t || t.dispose(),
          null === (e = this.wheat.material) || void 0 === e || e.dispose());
      }
    }
    var rs = as;
    class ls {
      constructor(t, e, i, s = 1, o = !0) {
        ((this.random = D(0.4, 1)),
          (this.myTime = 0),
          (this.isAnim = !1),
          (this.isFall = !1),
          (this.isFallAnim = !1),
          (this.lifeProgress = 0),
          (this.direction = -1),
          (this.speed = new E["Eb"]()),
          (this.vArr = []),
          (this.offsetArr = new Array(5)),
          (this.nodeSpeed = []),
          (this.wheatTop = new ss(t, this.random, i, s)),
          (this.wheatBottom = new rs(e, this.random, i, s)),
          (this.wheatBottom.maxY = this.wheatTop.maxY),
          (this.wheatBottom.uniforms.maxY.value = this.wheatTop.maxY),
          (this.scene = i));
        t.geometry.attributes.position;
      }
      initOffsetArr() {
        for (let t = 0; t < this.offsetArr.length; t++)
          this.offsetArr[t] = new E["Eb"](0, 0);
      }
      setFall(t) {
        this.isFall ||
          (this.wheatTop.setFall(t),
          this.wheatBottom.setFall(t),
          (this.speed = t.clone()),
          (this.isFall = !0),
          (this.isFallAnim = !0));
      }
      setDisappear() {
        ((this.wheatTop.disappear = !0), (this.wheatBottom.disappear = !0));
      }
      anim(t, e, i) {
        (this.wheatTop.anim(t, e, i), this.wheatBottom.anim(t, e, i));
      }
      dispose() {
        (this.wheatTop.dispose(), this.wheatBottom.dispose());
      }
    }
    var cs = ls;
    new E["Fb"](0, -9.8, 0);
    class hs {
      constructor(t, e) {
        ((this.wind = new E["Fb"](0, 0, 0)),
          (this.speedFactor = 1),
          (this.activeAtStart = !0),
          (this.reBorn = !0),
          (this.rands = [D(0.3, 0.7), D(0.3, 0.7), D(0.1, 0.3), D(0.1, 0.3)]),
          (this.speed = D(0.1, 0.2)),
          (this.isAnim = !1));
        const i = t.material,
          s = i.map;
        ((this.uniforms = { map: { value: s }, time: { value: 0 } }),
          (this.material = new E["qb"]({
            vertexShader: Xi.a,
            fragmentShader: Ji.a,
            uniforms: this.uniforms,
            transparent: !0,
            side: E["r"],
          })),
          (t.material = this.material),
          (this.cloud = t));
      }
      get lifeProgress() {
        return this.life / this.maxLife;
      }
      get isDead() {
        return this.lifeProgress >= 1;
      }
      anim(t, e) {
        const i =
            0.15 * Math.cos(t * this.rands[0] * 0.5 + 0.1 * this.rands[1]) * e,
          s =
            0.15 * Math.cos(t * this.rands[2] * 0.5 + 0.1 * this.rands[3]) * e,
          o = this.cloud.position;
        this.cloud.position.set(o.x + i, o.y + s, o.z);
      }
      openAnim() {
        this.isAnim = !0;
      }
      closeAnim() {
        this.isAnim = !1;
      }
      getMesh() {
        return this.cloud;
      }
      dispose() {
        var t, e;
        (null === (t = this.cloud.geometry) || void 0 === t || t.dispose(),
          null === (e = this.cloud.material) || void 0 === e || e.dispose());
      }
    }
    var ds = hs,
      us = i("5d78"),
      ps = i.n(us);
    class ms {
      constructor(t, e, i = !0) {
        ((this.myTime = 0),
          (this.guiguzi = t),
          (this.guiguzi.material = this.createMat()),
          (this.guiguzi.visible = i));
      }
      createMat() {
        this.manUniforms = {
          waveMap: { value: Ri.get("ggzWave") },
          fps: { value: 18 },
          time: { value: 0 },
          grid: { value: new E["Eb"](6, 6) },
        };
        const t = new E["qb"]({
          vertexShader: Xi.a,
          fragmentShader: ps.a,
          uniforms: this.manUniforms,
          transparent: !0,
          side: E["r"],
          depthTest: !1,
        });
        return t;
      }
      anim(t, e, i) {
        ((this.myTime += e),
          (this.myTime %= 2),
          (this.manUniforms.time.value = this.myTime));
      }
      dispose() {
        var t, e, i;
        (null === (t = this.guiguzi.geometry) || void 0 === t || t.dispose(),
          null === (e = this.guiguzi.material) || void 0 === e || e.dispose(),
          null === (i = Ri.get("ggzWave")) || void 0 === i || i.dispose());
      }
    }
    var fs = ms;
    const gs = new E["Fb"](0, -2, 0);
    class vs {
      constructor(t) {
        ((this.maxSize = 5),
          (this.minSize = 2),
          (this.ps = []),
          (this.r = D(0, 2 * Math.PI)),
          (this.random = D(0.4, 1)),
          (this.speedFactor = 2),
          (this.activeAtStart = !1),
          (this.reBorn = !1),
          (this.bornPos = new E["Fb"](0, 0, -5)),
          (this.bornPosTargget = new E["Fb"]()));
        const e = new E["cb"](0.2, 0.2);
        ((this.material = new E["P"]({
          map: Ri.get("light"),
          color: 14007108,
          transparent: !0,
          side: E["r"],
          depthTest: !1,
          blending: E["k"],
          blendEquation: E["a"],
          blendSrc: E["xb"],
          blendDst: E["Y"],
        })),
          (this.light = new E["u"](e, this.material, 200)),
          t.add(this.light));
        for (let i = 0; i < this.light.count; i++)
          this.ps.push({
            position: new E["Fb"](9999, 9999),
            velocity: new E["Fb"](),
            rotation: new E["Fb"](),
            wind: new E["Fb"](),
            maxOpacity: 1,
            size: 2,
            life: 0,
            maxLife: E["M"].randFloat(0, 2),
          });
      }
      setBornPos(t) {
        this.bornPos.copy(t);
      }
      setBornPosTargget(t) {
        this.bornPosTargget.copy(t);
      }
      setReBorn(t) {
        this.reBorn = t;
      }
      anim(t, e) {
        this.bornPos = this.bornPos.add(
          this.bornPosTargget.clone().sub(this.bornPos).multiplyScalar(0.1),
        );
      }
      update(t, e) {
        const i = new E["N"]();
        for (let s = 0; s < this.light.count; s++) {
          i.identity();
          const e = this.ps[s];
          e.life += t;
          const o = e.life / e.maxLife;
          (e.life > 0 &&
            e.life < e.maxLife &&
            ((e.wind.x = Math.cos(E["M"].degToRad(360 * o))),
            (e.wind.y = Math.sin(E["M"].degToRad(360 * o))),
            e.velocity.addScaledVector(gs, t),
            (e.position.x += (e.velocity.x + e.wind.x) * t * this.speedFactor),
            (e.position.y += (e.velocity.y + e.wind.y) * t * this.speedFactor),
            (e.position.z += (e.velocity.z + e.wind.z) * t * this.speedFactor),
            (e.rotation.x += e.rotation.x * t * this.speedFactor),
            (e.rotation.y += e.rotation.y * t * this.speedFactor),
            (e.rotation.z += e.rotation.z * t * this.speedFactor)),
            e.life >= e.maxLife && this.reBorn
              ? this.reset(s)
              : e.life >= e.maxLife &&
                ((e.position = new E["Fb"](99999, 99999, 9999)), (e.life = 0)));
          let n = E["M"].lerp(e.size, 0, o);
          ((n = Math.max(0, n)),
            i.makeScale(n, n, n),
            i.setPosition(e.position),
            this.light.setMatrixAt(s, i),
            (this.light.instanceMatrix.needsUpdate = !0));
        }
      }
      reset(t) {
        const e = this.ps[t];
        (e.position.copy(this.bornPos),
          e.rotation.set(0, 0, E["M"].degToRad(E["M"].randFloat(0, 360))),
          (e.size = E["M"].randFloat(this.minSize, this.maxSize)),
          (e.velocity = new E["Fb"](
            E["M"].randFloat(-1, 1),
            E["M"].randFloat(0.3, 2),
            1,
          )),
          (e.rotation = new E["Fb"](
            0,
            0,
            E["M"].degToRad(E["M"].randFloat(0, 50)),
          )),
          (e.wind = new E["Fb"](0, 0, 0)),
          (e.maxLife = E["M"].randFloat(1, 2)),
          (e.life = 0));
      }
      dispose() {
        var t, e, i;
        (null === (t = this.light.geometry) || void 0 === t || t.dispose(),
          null === (e = this.light.material) || void 0 === e || e.dispose(),
          null === (i = Ri.get("light")) || void 0 === i || i.dispose());
      }
    }
    var ws = vs;
    class ys extends qi {
      constructor(t, e) {
        (super(t),
          (this.hasLoad = !1),
          (this.isInteract = !1),
          (this.viewHeight = 700),
          (this.stoneIndex = 0),
          (this.stones = []),
          (this.audioStartIndex = -1),
          (this.audioEndIndex = 10),
          (this.mouse = new E["Eb"]()),
          (this.lastTouch = new E["Eb"]()),
          (this.animTouch = new E["Eb"]()),
          (this.raycaster = new E["nb"]()),
          (this.objs = {}),
          (this.wheatTops = []),
          (this.wheatBottoms = []),
          (this.wheats = []),
          (this.clouds = []),
          (this.perNum = [25, 42]),
          (this.perIndex = 0),
          (this.lastPos = new E["Eb"]()),
          (this.pos = new E["Eb"]()),
          (this.direction = 1),
          (this.isDispose = !1),
          (this.ctr = e),
          (this.scene = new E["pb"]()),
          (this.scene.background = new E["j"](200737)),
          this.scene.add(new E["b"](268435455)),
          (this.camera = new E["bb"](30, this.width / this.height, 0.1, 5e3)),
          this.camera.position.set(0, 0, 10),
          this.camera.lookAt(new E["Fb"](0, 0, 0)),
          this.loadModel());
      }
      loadModel() {
        const t = new Yi["a"](),
          e = "scene4.glb";
        this.updateProgress(e, 0);
        const i = "models/" + e;
        t.load(
          "./" + i,
          (t) => {
            ((this.hasLoad = !0),
              this.updateProgress(e, 1),
              console.log("HarvestScene:", t.scene),
              t.scene.traverse((t) => {
                if (t instanceof E["O"]) {
                  let e = t.material;
                  const i = e.map;
                  i &&
                    ((i.minFilter = E["F"]),
                    (i.generateMipmaps = !1),
                    (i.needsUpdate = !0));
                  const s = t.name.split("-");
                  if ("Wheat" === s[0])
                    "001" === s[1].slice(-3)
                      ? ((t.name = `${s[0]}-top-${s[1].slice(0, -3)}`),
                        this.wheatTops.push(t))
                      : ((t.name = `${s[0]}-bottom-${s[1].split("./")[0]}`),
                        this.wheatBottoms.push(t));
                  else if ("Cloud" === s[0])
                    this.clouds.push(new ds(t, this.scene));
                  else if ("Guiguzi" === s[0])
                    this.guiguzi = new fs(t, this.scene);
                  else if ("Plane" === s[0]) {
                    this.plane = t;
                    const e = t.material,
                      i = e.map,
                      s = {
                        map: { value: i },
                        time: { value: 0 },
                        start: { value: 0 },
                        end: { value: 0 },
                      };
                    t.material = new E["qb"]({
                      vertexShader: Xi.a,
                      fragmentShader: Ji.a,
                      uniforms: s,
                      transparent: !0,
                      side: E["r"],
                    });
                  } else {
                    const e = t.material,
                      i = e.map,
                      s = {
                        map: { value: i },
                        time: { value: 0 },
                        start: { value: 0 },
                        end: { value: 0 },
                      };
                    t.material = new E["qb"]({
                      vertexShader: Xi.a,
                      fragmentShader: Ji.a,
                      uniforms: s,
                      transparent: !0,
                      side: E["r"],
                    });
                  }
                  (t.geometry && this.geos.push(t.geometry),
                    t.material && this.mats.push(t.material),
                    e && this.mats.push(e),
                    e.map && this.texs.push(e.map),
                    e.metalnessMap && this.texs.push(e.metalnessMap),
                    e.roughnessMap && this.texs.push(e.roughnessMap));
                }
                this.objs[t.name] = t;
              }),
              (this.wheatTops = V(this.wheatTops)),
              (this.wheatBottoms = V(this.wheatBottoms)),
              console.log(this.wheatTops, this.wheatBottoms),
              this.wheatTops.forEach((t, e) => {
                const i = new cs(
                  this.wheatTops[e],
                  this.wheatBottoms[e],
                  this.scene,
                  1,
                );
                this.wheats.push(i);
              }),
              console.log("HarvestScene:", this.objs),
              this.initLight(),
              this.initCamera(),
              this.scene.add(t.scene),
              this.onWindowResize());
          },
        );
      }
      initCamera() {
        const t = this.objs["Camera"];
        ((this.camera = t),
          this.camera.position.set(t.position.x, t.position.y, t.position.z),
          (this.camera.fov = t.fov),
          (this.fov = t.fov),
          this.camera.updateMatrix());
      }
      initLight() {
        this.light = new ws(this.scene);
      }
      getMouserPoint(t) {
        const e = this.getScreenPos(t),
          i = new E["Eb"]();
        return (
          (i.x = (e.x / this.width) * 2 - 1),
          (i.y = (-e.y / this.height) * 2 + 1),
          i
        );
      }
      getTouchPoint(t) {
        const e = this.getScreenPos(t.touches[0]),
          i = new E["Eb"]();
        return (
          (i.x = (e.x / this.width) * 2 - 1),
          (i.y = (-e.y / this.height) * 2 + 1),
          i
        );
      }
      getIntersects(t) {
        this.raycaster.setFromCamera(t, this.camera);
        const e = [...this.wheatTops, ...this.wheatBottoms],
          i = this.raycaster.intersectObjects(e, !0);
        return i;
      }
      getWheatsIndex(t) {
        const e = this.getIntersects(t),
          i = [];
        if (e.length > 0)
          for (let s = 0; s < e.length; s++)
            i.push(parseInt(e[s].object.name.split("-")[2]));
        return i;
      }
      setSpeed(t) {
        return ((t = Math.min(t / 10, 40)), new E["Eb"](t, 0));
      }
      nextIndex() {
        ((this.perIndex += 1), A.commit("setHarvestIndex", this.perIndex));
      }
      getPlanePos(t) {
        this.raycaster.setFromCamera(t, this.camera);
        const e = [this.plane],
          i = this.raycaster.intersectObjects(e, !0);
        return i.length > 0 ? i[0].point : null;
      }
      dropLight(t) {
        this.light.setBornPosTargget(t);
      }
      onClick(t) {}
      reset() {}
      onMouseDown(t) {
        ((this.isInteract = !0),
          A.commit("setHasInteract", { index: 2, flag: !0 }),
          (this.pos = this.getScreenPos(t)),
          (this.lastPos = this.pos.clone()));
        const e = this.getPlanePos(this.getMouserPoint(t));
        (e && (this.light.setBornPos(e), this.light.setBornPosTargget(e)),
          this.light.setReBorn(!0));
      }
      onMouseMove(t) {
        if (!this.isInteract) return;
        ((this.pos = this.getScreenPos(t)),
          (this.direction = this.pos.x - this.lastPos.x > 0 ? 1 : -1));
        const e = this.pos.distanceTo(this.lastPos),
          i = this.getPlanePos(this.getMouserPoint(t));
        i && this.dropLight(i);
        const s = this.getWheatsIndex(this.getMouserPoint(t));
        if (s.length > 0)
          for (let o = 0; o < s.length; o++)
            s[o] <= this.perNum[this.perIndex] &&
              this.wheats[s[o]].setFall(this.setSpeed(e * this.direction));
        (H.play("cut"), (this.lastPos = this.pos.clone()));
      }
      onMouseUp(t) {
        if (
          ((this.isInteract = !1),
          A.commit("setHasInteract", { index: 2, flag: !1 }),
          this.nextIndex(),
          this.perIndex >= 2)
        )
          for (let e = 0; e < this.wheats.length; e++)
            this.wheats[e].setDisappear();
        this.light.setReBorn(!1);
      }
      onTouchStart(t) {
        ((this.isInteract = !0),
          A.commit("setHasInteract", { index: 2, flag: !0 }),
          (this.pos = this.getScreenPos(t.touches[0])),
          (this.lastPos = this.pos.clone()));
        const e = this.getPlanePos(this.getTouchPoint(t));
        (e && (this.light.setBornPos(e), this.light.setBornPosTargget(e)),
          this.light.setReBorn(!0));
      }
      onTouchMove(t) {
        if (!this.isInteract) return;
        ((this.pos = this.getScreenPos(t.touches[0])),
          (this.direction = this.pos.x - this.lastPos.x > 0 ? 1 : -1));
        const e = this.pos.distanceTo(this.lastPos),
          i = this.getPlanePos(this.getTouchPoint(t));
        i && this.dropLight(i);
        const s = this.getWheatsIndex(this.getTouchPoint(t));
        if (s.length > 0)
          for (let o = 0; o < s.length; o++)
            s[o] <= this.perNum[this.perIndex] &&
              this.wheats[s[o]].setFall(this.setSpeed(e * this.direction));
        (H.play("cut"), (this.lastPos = this.pos.clone()));
      }
      onTouchEnd(t) {
        if (
          ((this.isInteract = !1),
          A.commit("setHasInteract", { index: 2, flag: !1 }),
          this.nextIndex(),
          this.perIndex >= 2)
        )
          for (let e = 0; e < this.wheats.length; e++)
            this.wheats[e].setDisappear();
        this.light.setReBorn(!1);
      }
      anim(t, e) {
        var i;
        this.hasLoad &&
          (null === (i = this.controls) || void 0 === i || i.update(),
          this.wheats.forEach((i) => {
            i.anim(t, e, this.camera);
          }),
          this.clouds.forEach((i) => {
            i.anim(t, e);
          }),
          this.light.update(e, this.camera),
          this.light.anim(t, e),
          this.guiguzi && this.guiguzi.anim(t, e, this.camera),
          this.render(t, e));
      }
      render(t, e) {
        this.renderer.render(this.scene, this.camera);
      }
      onWindowResize() {
        if ((super.onWindowResize(), this.isDispose)) return;
        const t = 1624 / 750,
          e = this.camera,
          i = this.width / this.height;
        e.aspect = i;
        const s = i - t,
          o = 7.2;
        (s > 0 && s < 1 && (e.fov = this.fov - s * o),
          e.updateProjectionMatrix());
      }
      dispose() {
        (super.dispose(),
          (this.isDispose = !0),
          this.clouds.forEach((t) => t.dispose()),
          this.guiguzi.dispose(),
          this.light.dispose(),
          this.wheats.forEach((t) => t.dispose()),
          console.log("harvestScene dispose:", this.scene));
      }
    }
    var xs = ys,
      bs = i("4721");
    const Ps = new E["Fb"](0, -9.8, 0);
    class Ts {
      constructor(t) {
        ((this.wind = new E["Fb"](0, 0, 0)),
          (this.speedFactor = 2),
          (this.activeAtStart = !0),
          (this.reBorn = !0),
          (this.anim = !1));
        const e = 0.1,
          i = new E["cb"](1 * e, 12.8 * e),
          s = [
            Ri.get("drop0"),
            Ri.get("drop1"),
            Ri.get("drop2"),
            Ri.get("drop3"),
            Ri.get("drop4"),
          ],
          o = s[Math.floor(D(0, 4.99))];
        ((this.material = new E["qb"]({
          vertexShader: Xi.a,
          fragmentShader: Ji.a,
          uniforms: { map: { value: o }, time: { value: 0 } },
          transparent: !0,
          side: E["n"],
        })),
          (this.rain = new E["O"](i, this.material)),
          this.reset(),
          this.activeAtStart || (this.life = this.maxLife));
      }
      get lifeProgress() {
        return this.life / this.maxLife;
      }
      get isDead() {
        return this.lifeProgress >= 1;
      }
      getAngleX(t) {
        const e = new E["Fb"](0, 10, 0);
        let i = e.clone().sub(this.wind),
          s = new E["Fb"](0, 1, 0).angleTo(i);
        return ((s = t.x >= 0 ? 1 * s : -1 * s), s);
      }
      setWind(t) {
        this.wind = new E["Fb"](t.x, t.y);
      }
      openAnim() {
        this.anim = !0;
      }
      cloneAnim() {
        this.anim = !1;
      }
      update(t, e) {
        if (!(this.life < 0.1) || this.anim) {
          if (this.life > 0 && !this.isDead) {
            this.velocity.addScaledVector(Ps.clone(), t);
            const e = this.getAngleX(
                new E["Fb"](this.velocity.x + this.wind.x, 0, 0),
              ),
              i = Math.PI / 2 - e,
              s = this.rain.position.x,
              o = this.rain.position.y,
              n = Ps.y * t;
            ((this.rain.position.x = s - n * Math.cos(i)),
              (this.rain.position.y = o + n * Math.sin(i)),
              (this.rain.position.z +=
                (this.velocity.z + this.wind.z) * t * this.speedFactor),
              (this.rain.rotation.z = e),
              (this.material.opacity = E["M"].lerp(
                this.maxOpacity,
                0,
                z(this.lifeProgress),
              )));
          }
          ((this.life += t), this.isDead && this.reBorn && this.reset());
        }
      }
      reset(t = 0) {
        const e = -1.5,
          i = new E["Fb"](
            E["M"].randFloat(-13, 8),
            6 + e,
            E["M"].randFloat(0, 0.5),
          );
        (this.rain.position.copy(i),
          (this.maxOpacity = D(0.5, 0.3)),
          (this.material.opacity = this.maxOpacity),
          (this.velocity = new E["Fb"](0, 0, 0)),
          (this.maxLife = E["M"].randFloat(0.3, 1.3)),
          (this.life = 0 - t));
      }
      getMesh() {
        return this.rain;
      }
      dispose() {
        var t, e, i, s, o, n, a;
        (null === (t = this.rain.geometry) || void 0 === t || t.dispose(),
          null === (e = this.rain.material) || void 0 === e || e.dispose(),
          null === (i = Ri.get("drop0")) || void 0 === i || i.dispose(),
          null === (s = Ri.get("drop1")) || void 0 === s || s.dispose(),
          null === (o = Ri.get("drop2")) || void 0 === o || o.dispose(),
          null === (n = Ri.get("drop3")) || void 0 === n || n.dispose(),
          null === (a = Ri.get("drop4")) || void 0 === a || a.dispose());
      }
    }
    var _s = Ts,
      Ss = i("e59b"),
      Cs = i.n(Ss),
      ks = i("a060"),
      Is = i.n(ks);
    class Ms {
      constructor(t, e, i = 1, s = 0) {
        ((this.r = D(0, 2 * Math.PI)),
          (this.originX = 0),
          (this.random = D(0.4, 1)),
          (this.grass = t),
          (this.originX = this.grass.position.x));
        const o = [],
          n = t.geometry.attributes.position;
        for (let l = 0, c = n.count; l < c; l += 1) {
          const t = new E["Fb"]();
          (t.fromBufferAttribute(n, l), o.push(t.y));
        }
        const a = o.sort((t, e) => t - e),
          r = t.material.map;
        ((this.grassUniforms = {
          map: { value: r },
          shakeDir: { value: i },
          shakePinPos: { value: s },
          shakePin: { value: 0.1 },
          shakeAmp: { value: 0.5 },
          shakeFreq: { value: 1 },
          shakeOffset: { value: 0 },
          minY: { value: a[0] },
          maxY: { value: a[a.length - 1] },
          delta: { value: 0 },
          time: { value: 0 },
        }),
          (this.grass.material = new E["qb"]({
            vertexShader: Cs.a,
            fragmentShader: Is.a,
            uniforms: this.grassUniforms,
            transparent: !0,
            side: E["n"],
          })),
          (this.defualtPos = this.grass.position.clone()));
      }
      getPosition() {
        return this.grass.position;
      }
      updatePos(t) {
        let e;
        ((t *= 0.3),
          (e =
            t > 0
              ? this.defualtPos.clone()
              : this.defualtPos
                  .clone()
                  .add(this.defualtPos.clone().multiplyScalar(t))),
          (this.grass.position.x = e.x));
      }
      shake(t) {
        ((t *= 0.075),
          this.tl && (this.tl.pause(), this.tl.kill()),
          (this.tl = new u["a"].core.Timeline()),
          this.tl
            .addLabel("start")
            .to(this.grassUniforms.shakeOffset, { value: 5 * t }, "start")
            .to(this.grassUniforms.shakeFreq, { value: 3 }, "start")
            .to(this.grassUniforms.shakePin, { value: 0.5 }, "start")
            .addLabel("fade", 0.1)
            .to(this.grassUniforms.shakeFreq, { value: 5 }, "fade")
            .to(this.grassUniforms.shakeOffset, {
              value: 0 * t,
              duration: 0.75,
            }));
      }
      move(t) {
        this.grass.position.x = this.originX - t;
      }
      anim(t, e) {
        ((this.grassUniforms.time.value = t + this.r),
          (this.grassUniforms.delta.value = e));
      }
      dispose() {
        var t, e;
        (null === (t = this.grass.geometry) || void 0 === t || t.dispose(),
          null === (e = this.grass.material) || void 0 === e || e.dispose());
      }
    }
    var Os = Ms;
    new E["Fb"](0, -9.8, 0);
    class Fs {
      constructor(t, e) {
        ((this.wind = new E["Fb"](0, 0, 0)),
          (this.speedFactor = 1),
          (this.activeAtStart = !0),
          (this.reBorn = !0),
          (this.defaultSpeed = D(0.2, 0.3)),
          (this.speed = this.defaultSpeed),
          (this.isAnim = !1));
        const i = t.material,
          s = i.map;
        ((this.uniforms = { map: { value: s }, time: { value: 0 } }),
          (this.material = new E["qb"]({
            vertexShader: Xi.a,
            fragmentShader: Ji.a,
            uniforms: this.uniforms,
            transparent: !0,
            side: E["n"],
          })),
          (t.material = this.material),
          (this.cloud = t),
          e.add(this.cloud),
          (this.defaultSpeed -= 0.05 * this.cloud.position.y));
      }
      get lifeProgress() {
        return this.life / this.maxLife;
      }
      get isDead() {
        return this.lifeProgress >= 1;
      }
      setSpeed(t) {
        this.speed = this.defaultSpeed + 0.5 * t - 0.03 * this.cloud.position.y;
      }
      anim(t, e) {
        ((this.cloud.position.x += this.speed * e),
          this.cloud.position.x > 12 && (this.cloud.position.x = D(-15, -12)),
          this.isAnim || (this.speed += (this.defaultSpeed - this.speed) / 20));
      }
      openAnim() {
        this.isAnim = !0;
      }
      closeAnim() {
        ((this.isAnim = !1), (this.speed = this.defaultSpeed));
      }
      getMesh() {
        return this.cloud;
      }
      dispose() {
        var t, e;
        (null === (t = this.cloud.geometry) || void 0 === t || t.dispose(),
          null === (e = this.cloud.material) || void 0 === e || e.dispose());
      }
    }
    var As = Fs,
      Es = i("f7a9"),
      js = i.n(Es),
      $s = i("4722"),
      zs = i.n($s);
    new E["Fb"](0, -9.8, 0);
    class Ds {
      constructor(t, e) {
        ((this.wind = new E["Fb"](0, 0, 0)),
          (this.speedFactor = 1),
          (this.activeAtStart = !0),
          (this.reBorn = !0),
          (this.isAnim = !1));
        const i = t.material,
          s = i.map,
          o = [],
          n = t.geometry.attributes.position;
        for (let r = 0, l = n.count; r < l; r += 1) {
          const t = new E["Fb"]();
          (t.fromBufferAttribute(n, r), o.push(t.y));
        }
        const a = o.sort((t, e) => t - e);
        ((this.uniforms = {
          map: { value: s },
          shakeDir: { value: 1 },
          shakePinPos: { value: 0 },
          shakePin: { value: 0.1 },
          shakeAmp: { value: 0.5 },
          shakeFreq: { value: 1 },
          shakeOffset: { value: 0 },
          maxY: { value: a[a.length - 1] },
          time: { value: 0 },
        }),
          (this.material = new E["qb"]({
            vertexShader: zs.a,
            fragmentShader: js.a,
            uniforms: this.uniforms,
            transparent: !0,
            side: E["n"],
          })),
          (t.material = this.material),
          (this.tree = t),
          e.add(this.tree));
      }
      anim(t, e) {
        this.uniforms.time.value = t;
      }
      openAnim() {
        this.isAnim = !0;
      }
      closeAnim() {
        this.isAnim = !1;
      }
      getMesh() {
        return this.tree;
      }
      dispose() {
        var t, e;
        (null === (t = this.tree.geometry) || void 0 === t || t.dispose(),
          null === (e = this.tree.material) || void 0 === e || e.dispose());
      }
    }
    var Ls = Ds,
      Vs = i("232e"),
      Ws = i.n(Vs);
    class Us {
      constructor(t, e, i = !0) {
        ((this.myTime = 0),
          (this.isAnim = !1),
          (this.soils = []),
          (this.movePositions = []),
          (this.startPos = new E["Fb"](7.78124, -0.850842, 1.99973)),
          (this.endPos = new E["Fb"](4.84924, -0.99853, 1.99973)),
          (this.porgress = 0),
          (this.isWalk = !1),
          (this.guiguzi = t),
          console.log("guiguzi:", this.guiguzi),
          (this.guiguzi.material = this.createMat()),
          (this.guiguzi.visible = i));
      }
      createMat() {
        const t = this.guiguzi.material;
        t.map;
        this.manUniforms = {
          waitMap: { value: Ri.get("ggzWait") },
          walkMap: { value: Ri.get("ggzWalk") },
          fps: { value: 18 },
          time: { value: 0 },
          grid: { value: new E["Eb"](6, 6) },
          isTab: { value: !1 },
        };
        const e = new E["qb"]({
          vertexShader: Xi.a,
          fragmentShader: Ws.a,
          uniforms: this.manUniforms,
          transparent: !0,
          side: E["n"],
        });
        return e;
      }
      walk(t, e) {
        if (this.porgress >= 0.999)
          return (
            (this.porgress = 0),
            (this.manUniforms.isTab.value = !1),
            void (this.isWalk = !1)
          );
        const i = new E["Fb"]()
          .subVectors(this.endPos, this.startPos)
          .multiplyScalar(this.porgress)
          .add(this.startPos);
        ((this.guiguzi.position.x = i.x), (this.guiguzi.position.y = i.y));
      }
      setWalk() {
        ((this.isWalk = !0), (this.manUniforms.isTab.value = this.isWalk));
      }
      anim(t, e, i) {
        ((this.myTime += e),
          (this.myTime %= 2),
          this.isWalk && ((this.porgress += 0.2 * e), this.walk(t, e)),
          (this.manUniforms.time.value = this.myTime));
      }
      dispose() {
        var t, e, i, s;
        (null === (t = this.guiguzi.geometry) || void 0 === t || t.dispose(),
          null === (e = this.guiguzi.material) || void 0 === e || e.dispose(),
          null === (i = Ri.get("ggzWait")) || void 0 === i || i.dispose(),
          null === (s = Ri.get("ggzWalk")) || void 0 === s || s.dispose());
      }
    }
    var Ns = Us,
      Bs = i("e069"),
      Rs = i.n(Bs),
      Hs = i("ddc9"),
      qs = i.n(Hs);
    class Ys {
      constructor(t, e, i = 1, s = 0) {
        ((this.r = D(0, 2 * Math.PI)),
          (this.originX = 0),
          (this.rice = t),
          (this.originX = this.rice.position.x),
          (this.riceUniforms = {
            rice0Map: { value: Ri.get("rice0") },
            rice1Map: { value: Ri.get("rice1") },
            rice2Map: { value: Ri.get("rice2") },
            shakeDir: { value: i },
            shakePinPos: { value: s },
            shakePin: { value: 0.1 },
            shakeAmp: { value: 0.5 },
            shakeFreq: { value: 1 },
            shakeOffset: { value: 0 },
            time: { value: 0 },
            progress: { value: 0 },
          }),
          (this.rice.material = new E["qb"]({
            vertexShader: qs.a,
            fragmentShader: Rs.a,
            uniforms: this.riceUniforms,
            transparent: !0,
            side: E["n"],
          })),
          console.log("riceUniforms:", this.riceUniforms),
          (this.defualtPos = this.rice.position.clone()));
      }
      shake(t) {
        ((t *= 0.075),
          this.tl && (this.tl.pause(), this.tl.kill()),
          (this.tl = new u["a"].core.Timeline()),
          this.tl
            .addLabel("start")
            .to(this.riceUniforms.shakeOffset, { value: 5 * t }, "start")
            .to(this.riceUniforms.shakeFreq, { value: 3 }, "start")
            .to(this.riceUniforms.shakePin, { value: 0.5 }, "start")
            .addLabel("fade", 0.1)
            .to(this.riceUniforms.shakeFreq, { value: 5 }, "fade")
            .to(this.riceUniforms.shakeOffset, {
              value: 0 * t,
              duration: 0.75,
            }));
      }
      setProgress(t) {
        this.riceUniforms.progress.value = t;
      }
      anim(t, e) {
        this.riceUniforms.time.value = t + this.r;
      }
      dispose() {
        var t, e, i, s, o;
        (null === (t = this.rice.geometry) || void 0 === t || t.dispose(),
          null === (e = this.rice.material) || void 0 === e || e.dispose(),
          null === (i = Ri.get("rice0")) || void 0 === i || i.dispose(),
          null === (s = Ri.get("rice1")) || void 0 === s || s.dispose(),
          null === (o = Ri.get("rice2")) || void 0 === o || o.dispose());
      }
    }
    var Gs = Ys,
      Xs = i("ce58"),
      Qs = i.n(Xs);
    class Js {
      constructor(t, e = !0) {
        ((this.myTime = 0),
          (this.size = new E["Eb"](1.56, 1.2)),
          (this.maxSize = 1),
          (this.minSize = 0.5),
          (this.life = 0),
          (this.maxLife = 0),
          (this.opacity = 0));
        const i = new E["cb"](1.56, 1.2);
        ((this.material = this.createMat()),
          (this.ripple = new E["O"](i, this.material)),
          t.add(this.ripple),
          this.reset(new E["Fb"](0, 0, -10)));
      }
      createMat() {
        this.manUniforms = {
          waveMap: { value: Ri.get("ripple") },
          fps: { value: 18 },
          time: { value: 0 },
          grid: { value: new E["Eb"](6, 6) },
          opacity: { value: 1 },
        };
        const t = new E["qb"]({
          vertexShader: Xi.a,
          fragmentShader: Qs.a,
          uniforms: this.manUniforms,
          transparent: !0,
          side: E["n"],
          depthTest: !1,
        });
        return t;
      }
      get lifeProgress() {
        return this.life / this.maxLife;
      }
      get isDead() {
        return this.life > this.maxLife;
      }
      update(t) {
        (this.life > 0 &&
          !this.isDead &&
          (this.manUniforms.time.value = this.life),
          (this.life += t));
      }
      reset(t) {
        (this.ripple.position.copy(t), (this.life = 0), (this.maxLife = 2));
        const e = D(this.minSize, this.maxSize);
        (this.ripple.scale.set(e, e, e),
          (this.manUniforms.opacity.value = D(0.5, 0.8)));
      }
      dispose() {
        var t, e, i;
        (null === (t = this.ripple.geometry) || void 0 === t || t.dispose(),
          null === (e = this.ripple.material) || void 0 === e || e.dispose(),
          null === (i = Ri.get("ggzWave")) || void 0 === i || i.dispose());
      }
    }
    var Ks = Js;
    class Zs extends qi {
      constructor(t, e) {
        (super(t),
          (this.hasLoad = !1),
          (this.isInteract = !1),
          (this.viewHeight = 700),
          (this.stoneIndex = 0),
          (this.stones = []),
          (this.audioStartIndex = -1),
          (this.audioEndIndex = 10),
          (this.mouse = new E["Eb"]()),
          (this.lastTouch = new E["Eb"]()),
          (this.animTouch = new E["Eb"]()),
          (this.meshes = []),
          (this.time = 0),
          (this.targetTime = 5e3),
          (this.defualtSpeed = 1e3),
          (this.speed = this.defualtSpeed),
          (this.audioConfig = {
            water: [
              [1, 2],
              [5, 8],
            ],
            mountain: [[1, 22]],
          }),
          (this.posArr = [
            new E["Fb"](0.017114, -2.83633, -2.0339),
            new E["Fb"](7.55619, -2.83633, -2.0339),
            new E["Fb"](7.55619, -3.93192, -2.0339),
            new E["Fb"](0.017114, -3.93192, -2.0339),
          ]),
          (this.objs = {}),
          (this.grassList = []),
          (this.cloudList = []),
          (this.treesList = []),
          (this.ripple = []),
          (this.rain = []),
          (this.rainNum = 100),
          (this.progress = 0),
          (this.isDispose = !1),
          (this.ctr = e),
          (this.scene = new E["pb"]()),
          (this.scene.background = new E["j"](16777215)),
          (this.scene.background = new E["j"](0)),
          (this.camera = new E["bb"](30, this.width / this.height, 0.1, 50)),
          this.camera.position.set(0, 0, 10),
          this.camera.lookAt(new E["Fb"](0, 0, 0)),
          (this.controls = new bs["a"](this.camera, this.renderer.domElement)),
          this.initRain(),
          this.loadModel());
      }
      loadModel() {
        const t = new Yi["a"](),
          e = "scene3.glb";
        this.updateProgress(e, 0);
        const i = "models/" + e,
          s = [],
          o = [],
          n = [];
        t.load(
          "./" + i,
          (t) => {
            ((this.hasLoad = !0),
              this.updateProgress(e, 1),
              t.scene.traverse((t) => {
                if (t instanceof E["O"]) {
                  const e = t.material,
                    i = e.map,
                    a = { map: { value: i }, time: { value: 0 } };
                  ("Grass" === t.name.split("-")[0]
                    ? s.push(t)
                    : "Cloud" === t.name.split("-")[0]
                      ? o.push(t)
                      : "Tree" === t.name.split("-")[0]
                        ? n.push(t)
                        : "Guiguzi" === t.name.split("-")[0]
                          ? (this.guiguzi = new Ns(t, this.scene))
                          : "Rice" === t.name.split("-")[0]
                            ? (this.rice = new Gs(t, this.scene))
                            : (t.material = new E["qb"]({
                                vertexShader: Xi.a,
                                fragmentShader: Ji.a,
                                uniforms: a,
                                transparent: !0,
                                side: E["n"],
                              })),
                    t.geometry && this.geos.push(t.geometry),
                    t.material && this.mats.push(t.material),
                    e && this.mats.push(e),
                    e.map && this.texs.push(e.map),
                    e.metalnessMap && this.texs.push(e.metalnessMap),
                    e.roughnessMap && this.texs.push(e.roughnessMap));
                }
                this.objs[t.name] = t;
              }),
              this.scene.add(t.scene),
              console.log("irrigationScene:", this.objs),
              (this.grassList = s.map((t) => new Os(t, this.scene))),
              (this.cloudList = o.map((t) => new As(t, this.scene))),
              (this.treesList = n.map((t) => new Ls(t, this.scene))));
            for (let e = 0; e < 6; e++) this.ripple.push(new Ks(this.scene));
            (this.initCamera(), this.onWindowResize());
          },
        );
      }
      initCamera() {
        const t = this.objs["Camera"];
        ((this.camera = t),
          this.camera.position.set(t.position.x, t.position.y, t.position.z),
          this.camera.updateMatrix(),
          (this.fov = this.camera.fov));
      }
      initRain() {
        for (let t = 0; t < this.rainNum; t++) {
          const t = new _s();
          (t.setWind(new E["Eb"](5, 0)),
            this.rain.push(t),
            this.scene.add(t.rain));
        }
      }
      initTimer() {
        this.timer = setInterval(() => {
          ((this.time += 100),
            (this.speed =
              this.speed < this.targetTime
                ? this.speed + 100
                : this.targetTime),
            this.grassList.forEach((t) => {
              t.shake(this.speed / 1e3 / 0.5);
            }),
            this.rice.shake(this.speed / 1e3 / 0.5),
            this.cloudList.forEach((t) => {
              t.setSpeed(this.speed / 1e3 / 10);
            }),
            this.time % 200 === 0 && this.dropRipple(),
            this.nextIndex());
        }, 100);
      }
      clearTimer() {
        (clearInterval(this.timer),
          this.time < this.targetTime && (this.speed = this.defualtSpeed),
          (this.time =
            this.time + 2e3 > this.targetTime
              ? this.targetTime - 2e3
              : this.time));
      }
      nextIndex() {
        A.commit("setIrrigationIndex", Math.floor(this.time / 1e3));
      }
      dropRipple(t) {
        let e = 0;
        const i = new E["Fb"](
          D(this.posArr[0].x, this.posArr[1].x),
          D(this.posArr[0].y, this.posArr[2].y),
          this.posArr[0].z,
        );
        this.ripple.forEach((t) => {
          t.isDead && e < 1 && (t.reset(i), e++);
        });
      }
      onClick(t) {}
      reset() {
        this.guiguzi.setWalk();
      }
      onMouseDown(t) {
        ((this.isInteract = !0),
          A.commit("setHasInteract", { index: 1, flag: !0 }),
          this.cloudList.forEach((t) => {
            t.openAnim();
          }),
          this.initTimer(),
          H.play("rain"));
      }
      onMouseMove(t) {
        this.isInteract;
      }
      onMouseUp(t) {
        ((this.isInteract = !1),
          A.commit("setHasInteract", { index: 1, flag: !1 }),
          this.clearTimer(),
          H.pause("rain"));
      }
      onTouchStart(t) {
        ((this.isInteract = !0),
          A.commit("setHasInteract", { index: 1, flag: !0 }),
          this.cloudList.forEach((t) => {
            t.openAnim();
          }),
          this.initTimer(),
          H.play("rain"));
      }
      onTouchMove(t) {
        if (!this.isInteract) return;
        new E["Eb"](t.touches[0].clientX, t.touches[0].clientY);
      }
      onTouchEnd(t) {
        ((this.isInteract = !1),
          A.commit("setHasInteract", { index: 1, flag: !1 }),
          this.clearTimer(),
          H.pause("rain"));
      }
      anim(t, e) {
        var i;
        if (this.hasLoad) {
          if (
            (this.isInteract &&
              ((this.progress = Math.min(e / 5 + this.progress, 1)),
              this.rice.setProgress(this.progress)),
            null === (i = this.controls) || void 0 === i || i.update(),
            this.rain)
          ) {
            const t = j(this.defualtSpeed, this.targetTime, this.speed);
            let i = 0;
            0 != t && (i = Math.floor(E["M"].lerp(10, this.rain.length, t)));
            for (let e = 0; e < i; e++) this.rain[e].openAnim();
            for (let e = i; e < this.rain.length; e++) this.rain[e].cloneAnim();
            this.rain.forEach((t) => {
              t.update(e, this.camera);
            });
          }
          (this.ripple.forEach((t) => {
            t.update(e);
          }),
            this.grassList.forEach((i) => {
              i.anim(t, e);
            }),
            this.cloudList.forEach((i) => {
              i.anim(t, e);
            }),
            this.treesList.forEach((i) => {
              i.anim(t, e);
            }),
            this.guiguzi.anim(t, e, this.camera),
            this.rice && this.rice.anim(t, e),
            this.render(t, e));
        }
      }
      render(t, e) {
        this.renderer.render(this.scene, this.camera);
      }
      onWindowResize() {
        if ((super.onWindowResize(), this.isDispose)) return;
        const t = 1624 / 750,
          e = this.camera,
          i = this.width / this.height;
        e.aspect = i;
        const s = i - t,
          o = 7.2;
        (s > 0 && s < 1 && (e.fov = this.fov - s * o),
          e.updateProjectionMatrix(),
          this.grassList.forEach((t) => {
            "Grass-2" !== t.grass.name && t.updatePos(s);
          }));
      }
      dispose() {
        ((this.isDispose = !0),
          this.cloudList.forEach((t) => t.dispose()),
          this.grassList.forEach((t) => t.dispose()),
          this.guiguzi.dispose(),
          this.rain.forEach((t) => t.dispose()),
          this.rice.dispose(),
          this.treesList.forEach((t) => t.dispose()),
          this.ripple.forEach((t) => {
            t.dispose();
          }),
          super.dispose(),
          console.log("irrigationScene dispose:", this.scene));
      }
    }
    var to = Zs,
      eo = i("4d46"),
      io = i.n(eo);
    class so {
      constructor(t, e, i = !0) {
        ((this.myTime = 0),
          (this.isAnim = !1),
          (this.soils = []),
          (this.movePositions = []),
          (this.guiguzi = t),
          console.log("guiguzi:", this.guiguzi),
          (this.guiguzi.material = this.createMat()),
          (this.guiguzi.visible = i));
      }
      createMat() {
        const t = this.guiguzi.material;
        t.map;
        this.manUniforms = {
          waitMap: { value: Ri.get("cowWait") },
          walkMap: { value: Ri.get("cowWalk") },
          isWalk: { value: !1 },
          fps: { value: 18 },
          time: { value: 0 },
          grid: { value: new E["Eb"](6, 6) },
        };
        const e = new E["qb"]({
          vertexShader: Xi.a,
          fragmentShader: io.a,
          uniforms: this.manUniforms,
          transparent: !0,
          side: E["r"],
          depthTest: !1,
        });
        return e;
      }
      setWalk(t) {
        this.manUniforms.isWalk.value = t;
      }
      anim(t, e, i) {
        ((this.myTime += e),
          (this.myTime %= 1 + 14 / 18),
          (this.manUniforms.time.value = this.myTime));
      }
      dispose() {
        var t, e, i, s;
        (null === (t = this.guiguzi.geometry) || void 0 === t || t.dispose(),
          null === (e = this.guiguzi.material) || void 0 === e || e.dispose(),
          null === (i = Ri.get("cowWait")) || void 0 === i || i.dispose(),
          null === (s = Ri.get("cowWalk")) || void 0 === s || s.dispose());
      }
    }
    var oo = so,
      no = i("7541"),
      ao = i.n(no);
    class ro {
      constructor(t, e) {
        ((this.r = D(0, 2 * Math.PI)), (this.random = D(0.4, 1)));
        const i = [],
          s = t.geometry.attributes.position;
        for (let r = 0, l = s.count; r < l; r += 1) {
          const t = new E["Fb"]();
          (t.fromBufferAttribute(s, r), i.push(t.y));
        }
        const o = i.sort((t, e) => t - e);
        (console.log("arrY:", o), (this.grass = t));
        const n = this.grass.material,
          a = n.map;
        ((this.uniforms = {
          map: { value: a },
          random: { value: this.random },
          minY: { value: o[0] },
          maxY: { value: o[o.length - 1] },
          time: { value: 0 },
          delta: { value: 0 },
        }),
          (this.grass.material = new E["qb"]({
            vertexShader: ao.a,
            fragmentShader: Ji.a,
            uniforms: this.uniforms,
            transparent: !0,
            side: E["r"],
          })));
      }
      getPosition() {
        return this.grass.position;
      }
      updatePos(t) {
        let e;
        ((t *= 0.3),
          (e =
            t > 0
              ? this.defualtPos.clone()
              : this.defualtPos
                  .clone()
                  .add(this.defualtPos.clone().multiplyScalar(t))),
          (this.grass.position.x = e.x));
      }
      anim(t, e) {
        ((this.uniforms.time.value = t), (this.uniforms.delta.value = e));
      }
      dispose() {
        var t, e;
        (null === (t = this.grass.geometry) || void 0 === t || t.dispose(),
          null === (e = this.grass.material) || void 0 === e || e.dispose());
      }
    }
    var lo = ro;
    new E["Fb"](0, -9.8, 0);
    class co {
      constructor(t, e) {
        ((this.wind = new E["Fb"](0, 0, 0)),
          (this.speedFactor = 1),
          (this.activeAtStart = !0),
          (this.reBorn = !0),
          (this.rands = [D(0.3, 0.7), D(0.3, 0.7), D(0.1, 0.3), D(0.1, 0.3)]),
          (this.speed = D(0.1, 0.2)),
          (this.isAnim = !1));
        const i = t.material,
          s = i.map;
        ((this.uniforms = { map: { value: s }, time: { value: 0 } }),
          (this.material = new E["qb"]({
            vertexShader: Xi.a,
            fragmentShader: Ji.a,
            uniforms: this.uniforms,
            transparent: !0,
            side: E["r"],
          })),
          (t.material = this.material),
          (this.cloud = t));
      }
      get lifeProgress() {
        return this.life / this.maxLife;
      }
      get isDead() {
        return this.lifeProgress >= 1;
      }
      anim(t, e) {
        const i =
            0.15 * Math.cos(t * this.rands[0] * 0.5 + 0.1 * this.rands[1]) * e,
          s =
            0.15 * Math.cos(t * this.rands[2] * 0.5 + 0.1 * this.rands[3]) * e,
          o = this.cloud.position;
        this.cloud.position.set(o.x + i, o.y + s, o.z);
      }
      openAnim() {
        this.isAnim = !0;
      }
      closeAnim() {
        this.isAnim = !1;
      }
      getMesh() {
        return this.cloud;
      }
      dispose() {
        var t, e;
        (null === (t = this.cloud.geometry) || void 0 === t || t.dispose(),
          null === (e = this.cloud.material) || void 0 === e || e.dispose());
      }
    }
    var ho = co,
      uo = i("13ac"),
      po = i.n(uo);
    class mo {
      constructor(t, e, i = 0, s = 1) {
        ((this.r = D(0, 2 * Math.PI)),
          (this.originX = 0),
          (this.tree = t),
          (this.originX = this.tree.position.x));
        const o = t.material.map;
        ((this.treeUniforms = {
          map: { value: o },
          shakeDir: { value: i },
          shakePinPos: { value: s },
          shakePin: { value: 0.1 },
          shakeAmp: { value: 0.3 },
          shakeFreq: { value: 1 },
          shakeOffset: { value: 0 },
          time: { value: 0 },
        }),
          (this.tree.material = new E["qb"]({
            vertexShader: Xi.a,
            fragmentShader: po.a,
            uniforms: this.treeUniforms,
            transparent: !0,
            side: E["r"],
          })),
          (this.defualtPos = this.tree.position.clone()));
      }
      getPosition() {
        return this.tree.position;
      }
      updatePos(t) {
        let e;
        ((t *= 0.3),
          (e =
            t > 0
              ? this.defualtPos.clone()
              : this.defualtPos
                  .clone()
                  .add(this.defualtPos.clone().multiplyScalar(t))),
          (this.tree.position.x = e.x));
      }
      shake() {
        (this.tl && (this.tl.pause(), this.tl.kill()),
          (this.tl = new u["a"].core.Timeline()),
          this.tl
            .addLabel("start")
            .to(
              this.treeUniforms.shakeAmp,
              { value: 0.75, duration: 0.1 },
              "start",
            )
            .to(
              this.treeUniforms.shakeFreq,
              { value: 2, duration: 0.1 },
              "start",
            )
            .addLabel("fade", 0.5)
            .to(this.treeUniforms.shakeAmp, { value: 0, duration: 2 }, "fade")
            .to(
              this.treeUniforms.shakeFreq,
              { value: 6, duration: 2 },
              "fade",
            ));
      }
      move(t) {
        this.tree.position.x = this.originX - t;
      }
      anim(t, e) {
        this.treeUniforms.time.value = t + this.r;
      }
      dispose() {
        var t, e;
        (null === (t = this.tree.geometry) || void 0 === t || t.dispose(),
          null === (e = this.tree.material) || void 0 === e || e.dispose());
      }
    }
    var fo = mo,
      go = i("755c"),
      vo = i.n(go);
    const wo = new E["Fb"](0, -9.8, 0);
    class yo {
      constructor(t, e) {
        ((this.r = D(0, 2 * Math.PI)),
          (this.random = D(0.4, 1)),
          (this.rands = [D(0.3, 0.9)]),
          (this.life = 0),
          (this.maxLife = 0),
          (this.anim = !0),
          (this.velocity = new E["Fb"](1, 0, 0)),
          (this.wind = new E["Fb"](5, 0, 0)),
          (this.speedFactor = 0.5),
          (this.leaf = t));
        const i = this.leaf.material,
          s = i.map;
        ((this.uniforms = {
          map: { value: s },
          random: { value: this.random },
          time: { value: 0 },
          delta: { value: 0 },
          opacity: { value: 0 },
        }),
          (this.leaf.material = new E["qb"]({
            vertexShader: Xi.a,
            fragmentShader: vo.a,
            uniforms: this.uniforms,
            transparent: !0,
            side: E["r"],
          })),
          (this.defualtPos = this.leaf.position.clone()),
          this.reset());
      }
      getPosition() {
        return this.leaf.position;
      }
      updatePos(t) {
        let e;
        ((t *= 0.3),
          (e =
            t > 0
              ? this.defualtPos.clone()
              : this.defualtPos
                  .clone()
                  .add(this.defualtPos.clone().multiplyScalar(t))),
          (this.leaf.position.x = e.x));
      }
      get isDead() {
        return this.life > this.maxLife;
      }
      get lifeProgress() {
        return this.life / this.maxLife;
      }
      shake(t) {
        (this.life < 0.1 && !this.anim) ||
          (this.life > 0 &&
            !this.isDead &&
            (this.velocity.addScaledVector(wo, t),
            (this.leaf.position.x +=
              (this.velocity.x + this.wind.x) * t * this.speedFactor),
            (this.leaf.position.y +=
              (this.velocity.y + this.wind.y) * t * this.speedFactor),
            (this.leaf.rotation.z -=
              (this.velocity.x + this.wind.x) * (Math.PI / 180) * 0.5),
            (this.uniforms.opacity.value = E["M"].lerp(
              this.maxOpacity,
              0,
              z(this.lifeProgress),
            ))),
          (this.life += t),
          this.isDead && this.reset());
      }
      reset() {
        ((this.life = 0), (this.maxLife = D(1.5, 4)));
        const t = new E["Fb"](D(-9, -30), D(12, 18), this.defualtPos.z);
        (this.leaf.position.set(t.x, t.y, t.z),
          (this.leaf.rotation.z = D(1, 5) * (Math.PI / 180)),
          (this.wind = new E["Fb"](D(4, 6), 0, 0)),
          (this.maxOpacity = 1),
          (this.uniforms.opacity.value = 0),
          (this.velocity = new E["Fb"](1, 0, 0)));
      }
      dispose() {
        var t, e;
        (null === (t = this.leaf.geometry) || void 0 === t || t.dispose(),
          null === (e = this.leaf.material) || void 0 === e || e.dispose());
      }
    }
    var xo = yo,
      bo = i("02e1"),
      Po = i.n(bo);
    class To {
      constructor(t, e, i = !0) {
        ((this.myTime = 0),
          (this.i = 0),
          (this.isWave = !1),
          (this.defualtPos = new E["Fb"]()),
          (this.movePos = new E["Fb"]()),
          (this.god = t),
          console.log("god:", this.god),
          (this.god.material = this.createMat()),
          (this.god.visible = i));
      }
      createMat() {
        const t = this.god.material;
        t.map;
        this.manUniforms = {
          waitMap: { value: Ri.get("godWait") },
          walkMap: { value: Ri.get("godWave") },
          fps: { value: 18 },
          time: { value: 0 },
          grid: { value: new E["Eb"](6, 4) },
          isTab: { value: !1 },
        };
        const e = new E["qb"]({
          vertexShader: Xi.a,
          fragmentShader: Po.a,
          uniforms: this.manUniforms,
          transparent: !0,
          side: E["r"],
          depthTest: !1,
        });
        return ((this.defualtPos = this.god.position.clone()), e);
      }
      updatePos(t) {
        let e;
        ((t *= 0.63),
          (e =
            t > 0
              ? this.defualtPos.clone()
              : this.defualtPos
                  .clone()
                  .add(this.defualtPos.clone().multiplyScalar(t))),
          (this.god.position.x = e.x),
          (this.movePos = this.defualtPos.clone().sub(e)));
      }
      wave() {
        ((this.i = 0),
          (this.isWave = !0),
          (this.myTime = 0),
          (this.manUniforms.isTab.value = !0));
      }
      anim(t, e, i) {
        ((this.myTime += e),
          (this.myTime %= 1 + 5 / 18),
          this.isWave &&
            ((this.i += e),
            this.i > 1 + 5 / 18 &&
              ((this.i = 0),
              (this.isWave = !1),
              (this.manUniforms.isTab.value = !1))),
          (this.manUniforms.time.value = this.myTime));
      }
      dispose() {
        var t, e, i, s;
        (null === (t = this.god.geometry) || void 0 === t || t.dispose(),
          null === (e = this.god.material) || void 0 === e || e.dispose(),
          null === (i = Ri.get("godWait")) || void 0 === i || i.dispose(),
          null === (s = Ri.get("godWave")) || void 0 === s || s.dispose());
      }
    }
    var _o = To;
    const So = new E["Fb"](0, -9.8, 0);
    class Co {
      constructor(t) {
        ((this.maxSize = 4),
          (this.minSize = 1),
          (this.ps = []),
          (this.r = D(0, 2 * Math.PI)),
          (this.random = D(0.4, 1)),
          (this.speedFactor = 2),
          (this.activeAtStart = !1),
          (this.reBorn = !1),
          (this.bornPos = new E["Fb"](0, 0, -5)));
        const e = new E["cb"](0.2, 0.2);
        ((this.material = new E["P"]({
          map: Ri.get("light"),
          transparent: !0,
          side: E["r"],
        })),
          (this.light = new E["u"](e, this.material, 200)),
          t.add(this.light));
        for (let i = 0; i < this.light.count; i++)
          this.ps.push({
            position: new E["Fb"](9999, 9999),
            velocity: new E["Fb"](),
            rotation: new E["Fb"](),
            wind: new E["Fb"](),
            maxOpacity: 1,
            size: 2,
            life: 0,
            maxLife: E["M"].randFloat(0, 2),
            reBorn: !0,
          });
      }
      update(t, e) {
        const i = new E["N"]();
        for (let s = 0; s < this.light.count; s++) {
          const e = this.ps[s];
          if (!e.reBorn) continue;
          (i.identity(), (e.life += t));
          const o = e.life / e.maxLife;
          if (e.life > 0 && e.life < e.maxLife) {
            const i = E["M"].lerp(-30, 0, Math.min(5 * o, 1)),
              s = new E["Fb"](0, So.y - i, 0);
            e.velocity.addScaledVector(s, t);
            const n = E["M"].lerp(e.wind.x, 0.1 * e.wind.x, o);
            ((e.position.x += n * t * this.speedFactor),
              (e.position.y +=
                (e.velocity.y + e.wind.y) * t * this.speedFactor),
              (e.position.z +=
                (e.velocity.z + e.wind.z) * t * this.speedFactor),
              (e.rotation.x += e.rotation.x * t * this.speedFactor),
              (e.rotation.y += e.rotation.y * t * this.speedFactor),
              (e.rotation.z += e.rotation.z * t * this.speedFactor));
          }
          e.life >= e.maxLife && e.reBorn && (e.reBorn = !1);
          let n = E["M"].lerp(e.size, 0, o);
          ((n = Math.max(0, n)),
            i.makeScale(n, n, n),
            i.setPosition(e.position),
            this.light.setMatrixAt(s, i),
            (this.light.instanceMatrix.needsUpdate = !0));
        }
      }
      setBornPos(t) {
        this.bornPos.copy(t);
      }
      setReBorn(t) {
        this.reBorn = t;
        let e = 0;
        for (let i = 0; i < this.light.count; i++) {
          const t = this.ps[i];
          !t.reBorn && e < 100 && (this.reset(i), e++);
        }
      }
      reset(t) {
        const e = this.ps[t];
        (e.position.copy(this.bornPos),
          e.rotation.set(0, 0, E["M"].degToRad(E["M"].randFloat(0, 360))),
          (e.size = E["M"].randFloat(this.minSize, this.maxSize)),
          (e.velocity = new E["Fb"](
            E["M"].randFloat(-15, -5),
            E["M"].randFloat(1, 0),
            1,
          )),
          (e.rotation = new E["Fb"](
            0,
            0,
            E["M"].degToRad(E["M"].randFloat(0, 50)),
          )),
          (e.wind = new E["Fb"](-D(0.5, 13), 0, 0)),
          (e.maxLife = E["M"].randFloat(1.5, 2.5)),
          (e.life = 0),
          (e.reBorn = !0));
      }
      dispose() {
        var t, e, i;
        (null === (t = this.light.geometry) || void 0 === t || t.dispose(),
          null === (e = this.light.material) || void 0 === e || e.dispose(),
          null === (i = Ri.get("light")) || void 0 === i || i.dispose());
      }
    }
    var ko = Co,
      Io = i("c0d9"),
      Mo = i.n(Io);
    class Oo {
      constructor(t, e, i = !0) {
        ((this.myTime = 0),
          (this.isAnim = !1),
          (this.movePositions = []),
          (this.soilLeft = [100, 50, 0]),
          (this.soil = t),
          console.log("soil:", this.soil),
          (this.soil.visible = i),
          this.createMat());
      }
      createMat() {
        const t = this.soil.material;
        t.map;
        ((this.uniforms = {
          map: { value: Ri.get("soil") },
          time: { value: 0 },
          left: { value: 1 },
          right: { value: 1 },
        }),
          (this.soil.material = new E["qb"]({
            vertexShader: Xi.a,
            fragmentShader: Mo.a,
            uniforms: this.uniforms,
            transparent: !0,
            side: E["r"],
          })));
      }
      move(t, e) {
        let i = 100 * (1 - e);
        ((i = Math.max(0, i - 5)), (this.uniforms.left.value = i / 100));
      }
      anim(t, e, i) {
        (this.isAnim || ((this.myTime += e), (this.myTime %= 1)),
          (this.manUniforms.time.value = this.myTime));
      }
      dispose() {
        var t, e, i;
        (null === (t = this.soil.geometry) || void 0 === t || t.dispose(),
          null === (e = this.soil.material) || void 0 === e || e.dispose(),
          null === (i = Ri.get("soil")) || void 0 === i || i.dispose());
      }
    }
    var Fo = Oo;
    class Ao {
      constructor(t, e, i = !0) {
        ((this.myTime = 0),
          (this.defualtPos = new E["Fb"]()),
          (this.mountain = t),
          console.log("mountain:", this.mountain),
          (this.mountain.material = this.createMat()),
          (this.mountain.visible = i));
      }
      createMat() {
        const t = this.mountain.material,
          e = t.map;
        this.manUniforms = { map: { value: e } };
        const i = new E["qb"]({
          vertexShader: Xi.a,
          fragmentShader: Ji.a,
          uniforms: this.manUniforms,
          transparent: !0,
          side: E["r"],
          depthTest: !1,
        });
        return ((this.defualtPos = this.mountain.position.clone()), i);
      }
      updatePos(t, e) {
        if (e)
          return void (this.mountain.position.x = this.defualtPos
            .clone()
            .sub(e).x);
        let i;
        ((t *= 0.63),
          (i =
            t > 0
              ? this.defualtPos.clone()
              : this.defualtPos
                  .clone()
                  .add(this.defualtPos.clone().multiplyScalar(t))),
          (this.mountain.position.x = i.x));
      }
      dispose() {
        var t, e;
        (null === (t = this.mountain.geometry) || void 0 === t || t.dispose(),
          null === (e = this.mountain.material) || void 0 === e || e.dispose());
      }
    }
    var Eo = Ao;
    const jo = new E["Fb"](0, -9.8, 0);
    class $o {
      constructor(t) {
        ((this.maxSize = 3),
          (this.minSize = 1),
          (this.ps = []),
          (this.r = D(0, 2 * Math.PI)),
          (this.random = D(0.4, 1)),
          (this.speedFactor = 2),
          (this.activeAtStart = !1),
          (this.reBorn = !1),
          (this.bornPos = new E["Fb"](0, 0, -5)),
          (this.defaultPos = new E["Fb"](15.3, 4.95044, 1.2)));
        const e = new E["cb"](0.2, 0.2);
        ((this.material = new E["P"]({
          map: Ri.get("dust"),
          transparent: !0,
          side: E["r"],
        })),
          (this.dust = new E["u"](e, this.material, 200)),
          t.add(this.dust));
        for (let i = 0; i < this.dust.count; i++)
          this.ps.push({
            position: new E["Fb"](9999, 9999),
            velocity: new E["Fb"](),
            rotation: new E["Fb"](),
            wind: new E["Fb"](),
            maxOpacity: 1,
            size: 2,
            life: 0,
            maxLife: E["M"].randFloat(0, 2),
            maxY: 0,
            reBorn: !0,
          });
      }
      update(t, e) {
        const i = new E["N"]();
        for (let s = 0; s < this.dust.count; s++) {
          const e = this.ps[s];
          if (!e.reBorn) continue;
          (i.identity(), (e.life += t));
          const o = e.life / e.maxLife;
          if (e.life > 0 && e.life < e.maxLife) {
            const i = E["M"].lerp(e.maxY, 0, Math.min(5 * o, 1)),
              s = new E["Fb"](0, 1 * (jo.y - i), 0);
            (e.velocity.addScaledVector(s, t),
              (e.position.x +=
                (e.velocity.x + e.wind.x) * t * this.speedFactor),
              (e.position.y +=
                (e.velocity.y + e.wind.y) * t * this.speedFactor),
              (e.position.z +=
                (e.velocity.z + e.wind.z) * t * this.speedFactor),
              (e.rotation.x += e.rotation.x * t * this.speedFactor),
              (e.rotation.y += e.rotation.y * t * this.speedFactor),
              (e.rotation.z += e.rotation.z * t * this.speedFactor));
          }
          e.life >= e.maxLife && e.reBorn && (e.reBorn = !1);
          let n = E["M"].lerp(e.size, 0, o);
          ((n = Math.max(0, n)),
            i.makeScale(n, n, n),
            i.setPosition(e.position),
            this.dust.setMatrixAt(s, i),
            (this.dust.instanceMatrix.needsUpdate = !0));
        }
      }
      setBornPos(t) {
        this.bornPos.copy(t);
      }
      setReBorn(t) {
        this.reBorn = t;
        let e = 0;
        for (let i = 0; i < this.dust.count; i++) {
          const t = this.ps[i];
          !t.reBorn && e < 20 && (this.reset(i), e++);
        }
      }
      reset(t) {
        const e = this.ps[t];
        ((e.life = 0),
          (e.maxLife = D(0.2, 0.5)),
          e.position.copy(this.bornPos),
          (e.rotation.z = D(1, 5) * (Math.PI / 180)),
          (e.wind = new E["Fb"](D(1, 5), 0, 0)),
          (e.velocity = new E["Fb"](0, 0, 0)),
          (e.maxY = D(-50, -75)),
          (e.reBorn = !0));
      }
      dispose() {
        var t, e, i;
        (null === (t = this.dust.geometry) || void 0 === t || t.dispose(),
          null === (e = this.dust.material) || void 0 === e || e.dispose(),
          null === (i = Ri.get("dust")) || void 0 === i || i.dispose());
      }
    }
    var zo = $o;
    class Do extends qi {
      constructor(t, e) {
        (super(t),
          (this.hasLoad = !1),
          (this.isInteract = !1),
          (this.viewHeight = 700),
          (this.stoneIndex = 0),
          (this.stones = []),
          (this.audioStartIndex = -1),
          (this.audioEndIndex = 10),
          (this.mouse = new E["Eb"]()),
          (this.startMouse = new E["Eb"]()),
          (this.raycaster = new E["nb"]()),
          (this.lastTouch = new E["Eb"]()),
          (this.animTouch = new E["Eb"]()),
          (this.cameraX = 0),
          (this.cameraTargetX = 0),
          (this.meshes = []),
          (this.audioConfig = {
            water: [
              [1, 2],
              [5, 8],
            ],
            mountain: [[1, 22]],
          }),
          (this.objs = {}),
          (this.grass = []),
          (this.clouds = []),
          (this.Leafs = []),
          (this.posEmptys = []),
          (this.interactEmptys = []),
          (this.touchIndex = 0),
          (this.touchLength = 2),
          (this.pos = new E["Fb"]()),
          (this.posTarget = new E["Fb"]()),
          (this.progress = 0),
          (this.maxProgress = 1),
          (this.isGodWave = !1),
          (this.timer = null),
          (this.isEnd = !1),
          (this.moveStart = !0),
          (this.interactEnd = !1),
          (this.moveAnim = !1),
          (this.waveAnim = !1),
          (this.wavePorgress = 0),
          (this.difference = 0),
          (this.isDispose = !1),
          (this.ctr = e),
          (this.scene = new E["pb"]()),
          (this.scene.background = new E["j"](200737)),
          (this.camera = new E["bb"](30, this.width / this.height, 0.1, 5e3)),
          this.camera.position.set(0, 0, 10),
          this.camera.lookAt(new E["Fb"](0, 0, 0)),
          this.loadModel());
      }
      loadModel() {
        const t = new Yi["a"](),
          e = "scene2.glb";
        this.updateProgress(e, 0);
        const i = "models/" + e;
        t.load(
          "./" + i,
          (t) => {
            ((this.hasLoad = !0),
              this.updateProgress(e, 1),
              t.scene.traverse((t) => {
                const e = t.name.split("-")[0];
                if (
                  ("Pos" === e
                    ? this.posEmptys.push(t)
                    : "Interact" === e &&
                      (this.interactEmptys.push(t),
                      (t.defaultPos = t.position.clone()),
                      (t.material.color = "0xffffff")),
                  t instanceof E["O"])
                ) {
                  let i = t.material;
                  if ("Soil" === e) this.soil = new Fo(t, this.scene);
                  else if ("Guiguzi" === e)
                    this.guiguzi = new oo(t, this.scene);
                  else if ("God" === e) this.god = new _o(t, this.scene);
                  else if ("Mountain" === e)
                    this.mountain = new Eo(t, this.scene);
                  else if ("Grass" === e)
                    this.grass.push(new lo(t, this.scene));
                  else if ("Cloud" === e)
                    this.clouds.push(new ho(t, this.scene));
                  else if ("Tree" === e) this.tree = new fo(t, this.scene);
                  else if ("Leaf" === e) this.Leafs.push(new xo(t, this.scene));
                  else {
                    const e = i.map,
                      s = {
                        map: { value: e },
                        time: { value: 0 },
                        start: { value: 0 },
                        end: { value: 0 },
                      };
                    t.material = new E["qb"]({
                      vertexShader: Xi.a,
                      fragmentShader: Ji.a,
                      uniforms: s,
                      transparent: !0,
                      side: E["n"],
                    });
                  }
                  (t.geometry && this.geos.push(t.geometry),
                    t.material && this.mats.push(t.material),
                    i && this.mats.push(i),
                    i.map && this.texs.push(i.map),
                    i.metalnessMap && this.texs.push(i.metalnessMap),
                    i.roughnessMap && this.texs.push(i.roughnessMap));
                }
                this.objs[t.name] = t;
              }),
              (this.posEmptys = V(this.posEmptys)),
              console.log("FarmingScene:", this.objs),
              console.log("FarmingScene:", this.soil),
              console.log("FarmingScene Pos:", this.posEmptys),
              (this.light = new ko(this.scene)),
              (this.dust = new zo(this.scene)),
              this.scene.add(t.scene),
              this.initCamera(),
              this.onWindowResize());
          },
        );
      }
      initCamera() {
        const t = this.objs["Camera"];
        ((this.camera = t),
          (this.fov = t.fov),
          this.camera.position.set(t.position.x, t.position.y, t.position.z),
          this.camera.updateMatrix());
      }
      getTouchPoint(t) {
        const e = this.getScreenPos(t.touches[0]),
          i = new E["Eb"]();
        return (
          (i.x = (e.x / this.width) * 2 - 1),
          (i.y = (-e.y / this.height) * 2 + 1),
          i
        );
      }
      getMousePoint(t) {
        const e = t,
          i = (e.clientX / window.innerWidth) * 2 - 1,
          s = (-e.clientY / window.innerHeight) * 2 + 1;
        return new E["Eb"](i, s);
      }
      getIntersects(t, e = this.scene.children) {
        this.raycaster.setFromCamera(t, this.camera);
        const i = this.raycaster.intersectObjects(e, !0);
        return i;
      }
      nextIndex() {
        ((this.touchIndex += 1),
          A.commit("setFarmingIndex", this.touchIndex),
          A.commit("setFarmingTitleIndex", this.touchIndex),
          this.touchIndex + 1 >= this.touchLength && (this.isEnd = !0));
      }
      transition(t, e, i) {
        return ((i = Math.min(i, 1)), (e - t) * i + t);
      }
      godWave() {
        (H.play("bling"),
          this.god.wave(),
          this.timer && clearTimeout(this.timer),
          (this.timer = setTimeout(
            () => {
              const t = new E["Fb"](15.3, 4.95044, 1.2);
              if (this.difference > 0) this.light.setBornPos(t);
              else {
                const e = t
                    .clone()
                    .add(t.clone().multiplyScalar(0.63 * this.difference)),
                  i = t.clone();
                ((i.x = e.x), this.light.setBornPos(i));
              }
              (this.light.setReBorn(!0), (this.timer = null));
            },
            (6 / 23) * 1e3,
          )));
      }
      nextSoil(t, e, i) {
        const s = t - (1 / (this.posEmptys.length - 1)) * this.touchIndex,
          o = 1 / (this.posEmptys.length - 1),
          n = s / o;
        if (
          (console.log("next Soil:", n, this.progress),
          n >= 1 || this.progress > this.maxProgress)
        )
          return (
            this.nextIndex(),
            (this.moveAnim = !1),
            this.guiguzi.setWalk(!1),
            void A.commit("setHasAnim", { index: 0, flag: !1 })
          );
        const [a, r] = [
            this.posEmptys[this.touchIndex].position,
            this.posEmptys[this.touchIndex + 1].position,
          ],
          l = new E["Fb"]().subVectors(r, a).multiplyScalar(n).add(a);
        (this.guiguzi.guiguzi.position.set(l.x, l.y, l.z),
          this.guiguzi.setWalk(!0),
          this.soil.move(this.touchIndex, this.progress),
          this.dropLight(l));
      }
      dropLight(t) {
        const e = t
          .clone()
          .sub(new E["Fb"](D(0.1, 0.9), D(-0.1, 0.1), D(-0.1, 0.1)));
        (this.dust.setBornPos(e), this.dust.setReBorn(!0));
      }
      tag() {
        const t = this.interactEmptys[this.touchIndex + 1].position.clone(),
          e = t.project(this.camera);
        let i, s;
        this.needRotate
          ? ((i = window.innerHeight / 2), (s = window.innerWidth / 2))
          : ((i = window.innerWidth / 2), (s = window.innerHeight / 2));
        const o = e.x * i + i,
          n = -e.y * s + s;
        return new E["Eb"](o, n);
      }
      touchPos(t) {
        const e = this.getScreenPos(t.touches[0]),
          i = this.tag(),
          s = e.distanceTo(new E["Eb"](i.x, i.y));
        A.commit("setInteractTip0distance", s);
      }
      mousePos(t) {
        const e = this.getScreenPos(t),
          i = this.tag(),
          s = e.distanceTo(new E["Eb"](i.x, i.y));
        A.commit("setInteractTip0distance", s);
      }
      onClick(t) {}
      reset() {}
      onMouseDown(t) {
        ((this.isInteract = !0),
          (this.mouse = this.getMousePoint(t)),
          (this.startMouse = this.getMousePoint(t)));
        const e = this.getIntersects(this.mouse, [
          ...this.interactEmptys,
          this.god.god,
        ]);
        (console.log(this.interactEmptys, e),
          e.length > 0 &&
            e[0].object.name === this.interactEmptys[this.touchIndex].name &&
            ((this.moveStart = !0),
            A.commit("setHasInteract", { index: 0, flag: !0 })),
          e.length > 0 &&
            e[0].object.name === this.god.god.name &&
            (this.godWave(), A.commit("setFarmingTitleIndex", 0)));
      }
      onMouseMove(t) {
        this.isInteract &&
          ((this.mouse = this.getMousePoint(t)), this.mousePos(t));
      }
      onMouseUp(t) {
        ((this.isInteract = !1),
          (this.checkedPlane = this.getIntersects(
            this.mouse,
            this.interactEmptys,
          )));
        const e = this.mouse.clone().distanceTo(this.startMouse);
        (this.checkedPlane &&
          this.checkedPlane.length > 0 &&
          this.checkedPlane[0].object.name ===
            this.interactEmptys[this.touchIndex + 1].name &&
          (this.interactEnd = !0),
          !this.moveAnim &&
            this.interactEnd &&
            (this.moveStart || e < 0.01) &&
            (A.commit("setHasAnim", { index: 0, flag: !0 }),
            (this.moveAnim = !0),
            (this.guiguzi.isAnim = !0),
            H.play("cow")),
          A.commit("setHasInteract", { index: 0, flag: !1 }),
          (this.moveStart = !1),
          (this.interactEnd = !1));
      }
      onTouchStart(t) {
        ((this.isInteract = !0),
          (this.mouse = this.getTouchPoint(t)),
          (this.startMouse = this.getTouchPoint(t)));
        const e = this.getIntersects(this.mouse, [
          ...this.interactEmptys,
          this.god.god,
        ]);
        (console.log(this.interactEmptys, e),
          e.length > 0 &&
            e[0].object.name === this.interactEmptys[this.touchIndex].name &&
            ((this.moveStart = !0),
            A.commit("setHasInteract", { index: 0, flag: !0 })),
          e.length > 0 &&
            e[0].object.name === this.god.god.name &&
            (this.godWave(), A.commit("setFarmingTitleIndex", 0)));
      }
      onTouchMove(t) {
        this.isInteract &&
          ((this.mouse = this.getTouchPoint(t)), this.touchPos(t));
      }
      onTouchEnd(t) {
        ((this.isInteract = !1),
          (this.checkedPlane = this.getIntersects(
            this.mouse,
            this.interactEmptys,
          )));
        const e = this.mouse.clone().distanceTo(this.startMouse);
        (this.checkedPlane &&
          this.checkedPlane.length > 0 &&
          this.checkedPlane[0].object.name ===
            this.interactEmptys[this.touchIndex + 1].name &&
          (this.interactEnd = !0),
          !this.moveAnim &&
            this.interactEnd &&
            (this.moveStart || e < 0.01) &&
            (A.commit("setHasAnim", { index: 0, flag: !0 }),
            (this.moveAnim = !0),
            (this.guiguzi.isAnim = !0),
            H.play("cow")),
          A.commit("setHasInteract", { index: 0, flag: !1 }),
          (this.moveStart = !1),
          (this.interactEnd = !1));
      }
      anim(t, e) {
        var i;
        this.hasLoad &&
          (this.moveAnim &&
            ((this.progress += 0.0025), this.nextSoil(this.progress, t, e)),
          this.light.update(e, this.camera),
          this.dust.update(e, this.camera),
          this.god.anim(t, e, this.camera),
          this.grass.forEach((i) => {
            i.anim(t, e);
          }),
          this.clouds.forEach((i) => {
            i.anim(t, e);
          }),
          this.tree.anim(t, e),
          this.Leafs.forEach((t) => {
            t.shake(e);
          }),
          this.guiguzi.anim(t, e, this.camera),
          this.god.anim(t, e, this.camera),
          null === (i = this.controls) || void 0 === i || i.update(),
          this.render(t, e));
      }
      render(t, e) {
        this.renderer.render(this.scene, this.camera);
      }
      onWindowResize() {
        if ((super.onWindowResize(), this.isDispose)) return;
        const t = 1624 / 750,
          e = this.camera,
          i = this.width / this.height;
        e.aspect = i;
        const s = i - t;
        console.log("difference:", s);
        const o = 7.2;
        if (
          (s > 0 && s < 1 && (e.fov = this.fov - s * o),
          (this.difference = s),
          this.camera.updateProjectionMatrix(),
          this.god && this.god.updatePos(s),
          this.mountain && this.mountain.updatePos(s, this.god.movePos),
          this.guiguzi && this.soil && 0 > s)
        ) {
          if (this.touchIndex === this.posEmptys.length - 1) return;
          (0 == this.touchIndex && (this.progress = -this.difference / 4),
            (this.maxProgress = 1 + this.difference / 8));
          const [t, e] = [
              this.posEmptys[this.touchIndex].position,
              this.posEmptys[this.touchIndex + 1].position,
            ],
            i =
              this.progress -
              (1 / (this.posEmptys.length - 1)) * this.touchIndex,
            s = 1 / (this.posEmptys.length - 1),
            o = i / s,
            n = new E["Fb"]().subVectors(e, t).multiplyScalar(o).add(t);
          (this.guiguzi.guiguzi.position.set(n.x, n.y, n.z),
            this.soil.move(this.touchIndex, this.progress));
        }
        if (i >= 1 && i <= 1.38) {
          const t = this.interactEmptys[1].defaultPos;
          this.interactEmptys[1].position.set(t.x - 1.8, t.y, t.z);
          const e = this.interactEmptys[2].defaultPos;
          this.interactEmptys[2].position.set(e.x + 4, e.y, e.z);
        } else
          (this.interactEmptys[1].position.copy(
            this.interactEmptys[1].defaultPos,
          ),
            this.interactEmptys[2].position.copy(
              this.interactEmptys[2].defaultPos,
            ));
        console.log("emptys:", this.interactEmptys);
      }
      dispose() {
        ((this.isDispose = !0),
          this.clouds.forEach((t) => t.dispose()),
          this.god.dispose(),
          this.grass.forEach((t) => t.dispose()),
          this.guiguzi.dispose(),
          this.Leafs.forEach((t) => t.dispose()),
          this.light.dispose(),
          this.mountain.dispose(),
          this.soil.dispose(),
          this.tree.dispose(),
          this.dust.dispose(),
          super.dispose(),
          console.log("framingScene dispose:", this.scene));
      }
    }
    var Lo = Do;
    class Vo {
      constructor(t, e) {
        ((this.hasInit = !1),
          (this.pixelRatio =
            window.devicePixelRatio > 2 ? 2 : window.devicePixelRatio),
          (this.clock = new E["i"]()),
          (this.isEnd = !1),
          (this.scenes = {}),
          (this.sceneSeq = ["seed", "farming", "irrigation", "harvest"]),
          (this.sceneIndex = 1),
          this.androidReducePixelRatio(),
          (this.container = t),
          (this.canvas = e));
        const i = this.container.clientWidth,
          s = this.container.clientHeight;
        ((this.width = Math.max(i, s)),
          (this.height = Math.min(i, s)),
          (this.renderer = new E["Ib"]({
            canvas: this.canvas,
            alpha: !0,
            antialias: !0,
          })),
          this.renderer.setSize(this.width, this.height),
          this.renderer.setPixelRatio(this.pixelRatio),
          Ri.init(this.renderer),
          (this.scenes["farming"] = new Lo(this.renderer, this)),
          (this.scenes["irrigation"] = new to(this.renderer, this)),
          (this.scenes["harvest"] = new xs(this.renderer, this)),
          this.onWindowResize(),
          this.canvas.addEventListener(
            "touchstart",
            this.onTouchStart.bind(this),
          ),
          this.canvas.addEventListener(
            "touchmove",
            this.onTouchMove.bind(this),
          ),
          this.canvas.addEventListener("touchend", this.onTouchEnd.bind(this)),
          this.canvas.addEventListener(
            "mousedown",
            this.onMouseDown.bind(this),
          ),
          this.canvas.addEventListener(
            "mousemove",
            this.onMouseMove.bind(this),
          ),
          this.canvas.addEventListener("mouseup", this.onMouseUp.bind(this)),
          this.canvas.addEventListener("click", this.onClick.bind(this)));
      }
      get needRotate() {
        return A.state.needRotate;
      }
      get currentScene() {
        return this.scenes[this.sceneSeq[this.sceneIndex]];
      }
      get currentSceneName() {
        return this.sceneSeq[this.sceneIndex];
      }
      androidReducePixelRatio() {
        A.state.lowVersion
          ? (console.log("lowVersion:", !0), (this.pixelRatio = 1))
          : console.log("lowVersion:", !1);
      }
      init() {
        ((this.hasInit = !0), this.currentScene.reset());
      }
      onTouchStart(t) {
        this.currentScene.onTouchStart(t);
      }
      onTouchMove(t) {
        (this.currentScene.onTouchMove(t), t.preventDefault());
      }
      onTouchEnd(t) {
        this.currentScene.onTouchEnd(t);
      }
      onMouseDown(t) {
        this.currentScene.onMouseDown(t);
      }
      onMouseMove(t) {
        (this.currentScene.onMouseMove(t), t.preventDefault());
      }
      onMouseUp(t) {
        this.currentScene.onMouseUp(t);
      }
      onClick(t) {
        this.currentScene.onClick(t);
      }
      nextScene() {
        if (((this.hasInit = !0), this.sceneIndex + 1 >= this.sceneSeq.length))
          return (
            this.currentScene.stopAllAudio(),
            this.currentScene.dispose(),
            void (this.isEnd = !0)
          );
        (this.currentScene.stopAllAudio(),
          this.currentScene.dispose(),
          this.sceneIndex++,
          (2 != this.sceneIndex && 3 != this.sceneIndex) ||
            A.commit("setChapter", this.sceneIndex - 1),
          setTimeout(() => {
            this.currentScene.reset();
          }, 20));
      }
      swicthPage(t, e) {
        A.commit("UpdatePageSwitch", { pageName: t, enabled: e });
      }
      logInfo() {
        console.log(this.renderer.info);
      }
      anim(t) {
        this.isEnd || (this.hasInit && this.render(t));
      }
      render(t) {
        let e = this.clock.getDelta();
        e = Math.min(0.02, e);
        const i = this.clock.getElapsedTime();
        this.currentScene.anim(i, e);
      }
      onWindowResize() {
        setTimeout(() => {
          const t = this.container.clientWidth,
            e = this.container.clientHeight;
          ((this.width = Math.max(t, e)),
            (this.height = Math.min(t, e)),
            this.renderer.setSize(this.width, this.height));
          let i = Object.keys(this.scenes);
          i.forEach((t) => {
            this.scenes[t].onWindowResize();
          });
        }, 100);
      }
    }
    var Wo = i("3191"),
      Uo = i.n(Wo);
    let No = class extends r["c"] {
      constructor() {
        (super(...arguments), (this.animId = 0));
      }
      get canvas() {
        return this.$refs.canvas;
      }
      async mounted() {
        ((this.ctr = new Vo(this.$el, this.canvas)),
          this.anim(0),
          document.addEventListener("click", () => {
            this.ctr.logInfo();
          }));
      }
      anim(t) {
        (this.ctr.anim(t), (this.animId = requestAnimationFrame(this.anim)));
      }
      initStats() {
        ((this.stats = new Uo.a()),
          this.stats.showPanel(0),
          document.body.appendChild(this.stats.dom));
      }
      init() {
        this.ctr.init();
      }
      nextScene() {
        this.ctr.nextScene();
      }
      reset() {}
      onWindowResize() {
        this.ctr.onWindowResize();
      }
    };
    No = Object(a["a"])([Object(r["a"])({})], No);
    var Bo = No,
      Ro = Bo,
      Ho = (i("ee9d"), Object(w["a"])(Ro, Wi, Ui, !1, null, "bdcbb1d2", null)),
      qo = Ho.exports,
      Yo = function () {
        var t = this,
          e = t._self._c;
        t._self._setupProxy;
        return e(
          "div",
          { ref: "welfareWrapper", staticClass: "welfare_wrapper fullscreen" },
          [
            e("div", {
              ref: "bg",
              staticClass: "dialog_bg fullscreen",
              on: {
                click: function (e) {
                  return t.close();
                },
              },
            }),
            e(
              "div",
              { ref: "dialog", staticClass: "dialog_wrapper" },
              [
                t.dialogSwicth === t.DIALOG.WELFARE
                  ? e("div", { ref: "get", staticClass: "welfare_get" }, [
                      e("div", { staticClass: "welfare_get_dialog" }, [
                        e("div", { staticClass: "close_bt_wrapper" }, [
                          e("div", {
                            staticClass: "close_bt",
                            on: {
                              click: function (e) {
                                return t.close();
                              },
                            },
                          }),
                        ]),
                        e("div", {
                          staticClass: "button",
                          on: {
                            click: function (e) {
                              return t.getWelfare();
                            },
                          },
                        }),
                      ]),
                    ])
                  : t._e(),
                t.dialogSwicth === t.DIALOG.HASGET
                  ? e("div", { ref: "hasget", staticClass: "welfare_hasget" }, [
                      e("div", { staticClass: "welfare_hasget_dialog" }, [
                        e("div", { staticClass: "close_bt_wrapper" }, [
                          e("div", {
                            staticClass: "close_bt",
                            on: {
                              click: function (e) {
                                return t.close();
                              },
                            },
                          }),
                        ]),
                      ]),
                      e("div", {
                        staticClass: "back_bt",
                        on: {
                          click: function (e) {
                            return t.close();
                          },
                        },
                      }),
                    ])
                  : t._e(),
                t.dialogSwicth === t.DIALOG.SUCCESS
                  ? e(
                      "div",
                      { ref: "success", staticClass: "welfare_success" },
                      [
                        e("div", { staticClass: "welfare_success_dialog" }, [
                          e("div", { staticClass: "close_bt_wrapper" }, [
                            e("div", {
                              staticClass: "close_bt",
                              on: {
                                click: function (e) {
                                  return t.close();
                                },
                              },
                            }),
                          ]),
                        ]),
                        e("div", {
                          staticClass: "back_bt",
                          on: {
                            click: function (e) {
                              return t.close();
                            },
                          },
                        }),
                      ],
                    )
                  : t._e(),
                t.dialogSwicth === t.DIALOG.FAIL
                  ? e("div", { ref: "fail", staticClass: "welfare_fail" }, [
                      e("div", { staticClass: "welfare_fail_dialog" }, [
                        e("div", { staticClass: "close_bt_wrapper" }, [
                          e("div", {
                            staticClass: "close_bt",
                            on: {
                              click: function (e) {
                                return t.close();
                              },
                            },
                          }),
                        ]),
                      ]),
                      e("div", {
                        staticClass: "back_bt",
                        on: {
                          click: function (e) {
                            return t.close();
                          },
                        },
                      }),
                    ])
                  : t._e(),
                t.dialogSwicth === t.DIALOG.EXPIRED
                  ? e(
                      "div",
                      { ref: "expired", staticClass: "welfare_expired" },
                      [
                        e("div", { staticClass: "welfare_expired_dialog" }, [
                          e("div", { staticClass: "close_bt_wrapper" }, [
                            e("div", {
                              staticClass: "close_bt",
                              on: {
                                click: function (e) {
                                  return t.close();
                                },
                              },
                            }),
                          ]),
                        ]),
                        e("div", {
                          staticClass: "back_bt",
                          on: {
                            click: function (e) {
                              return t.close();
                            },
                          },
                        }),
                      ],
                    )
                  : t._e(),
                e("BindDialog", {
                  class:
                    "bind_dialog " +
                    (t.dialogSwicth === t.DIALOG.BIND ? "show" : "hide"),
                  on: { close: t.close },
                }),
                t.dialogSwicth === t.DIALOG.LOGIN
                  ? e("LoginDialog", {
                      on: {
                        close: t.close,
                        showWechatMsg: t.showWechatMsg,
                        showQQMsg: t.showQQMsg,
                      },
                    })
                  : t._e(),
                e(
                  "keep-alive",
                  [
                    t.showAlert
                      ? e("AlertDialog", {
                          attrs: { msg: t.msg, callback: t.alertCallback },
                          on: { close: t.closeAlert },
                        })
                      : t._e(),
                  ],
                  1,
                ),
              ],
              1,
            ),
          ],
        );
      },
      Go = [],
      Xo = function () {
        var t = this,
          e = t._self._c;
        t._self._setupProxy;
        return e("div", { staticClass: "login_wrapper fullscreen" }, [
          e("div", { staticClass: "login_bg" }, [
            e("div", { staticClass: "close_bt", on: { click: t.close } }),
            e("div", {
              ref: "qqBt",
              staticClass: "qq_bt",
              attrs: {
                "data-clipboard-text":
                  "https://pvp.qq.com/act/6749/a20210927pf/index.html",
              },
              on: { click: t.toQQ },
            }),
            e("div", {
              ref: "wechatBt",
              staticClass: "wechat_bt",
              attrs: {
                "data-clipboard-text":
                  "https://pvp.qq.com/act/6749/a20210927pf/index.html",
              },
              on: { click: t.toWechat },
            }),
          ]),
        ]);
      },
      Qo = [],
      Jo = i("b311"),
      Ko = i.n(Jo);
    let Zo = class extends r["c"] {
      mounted() {
        (u["a"].fromTo(this.$el, { opacity: 0 }, { opacity: 1 }),
          new Ko.a(this.$refs.qqBt),
          new Ko.a(this.$refs.wechatBt));
      }
      close() {
        u["a"].fromTo(
          this.$el,
          { opacity: 1 },
          {
            opacity: 0,
            duration: 0.3,
            onComplete: () => {
              this.$emit("close");
            },
          },
        );
      }
      toQQ() {
        (L("btn", "login", "toQQ"), this.$emit("showQQMsg"));
      }
      toWechat() {
        (L("btn", "login", "toWechat"), this.$emit("showWechatMsg"));
      }
    };
    Zo = Object(a["a"])([Object(r["a"])({ components: {} })], Zo);
    var tn = Zo,
      en = tn,
      sn = (i("8f43"), Object(w["a"])(en, Xo, Qo, !1, null, "35edf8e8", null)),
      on = sn.exports,
      nn = function () {
        var t = this,
          e = t._self._c;
        t._self._setupProxy;
        return e("div", { staticClass: "alert_wrapper fullscreen" }, [
          e("div", { staticClass: "alert_bg" }, [
            e("div", { staticClass: "close_bt", on: { click: t.close } }),
            e("div", { staticClass: "msg_wrapper" }, [
              e("p", { staticClass: "msg" }, [t._v(t._s(t.msg))]),
            ]),
          ]),
        ]);
      },
      an = [];
    let rn = class extends r["c"] {
      mounted() {
        this.show();
      }
      activated() {
        this.show();
      }
      show() {
        u["a"].fromTo(this.$el, { opacity: 0 }, { opacity: 1 });
      }
      close() {
        (this.callback && this.callback(),
          u["a"].fromTo(
            this.$el,
            { opacity: 1 },
            {
              opacity: 0,
              duration: 0.3,
              onComplete: () => {
                this.$emit("close");
              },
            },
          ));
      }
    };
    (Object(a["a"])([Object(r["b"])()], rn.prototype, "msg", void 0),
      Object(a["a"])([Object(r["b"])()], rn.prototype, "callback", void 0),
      (rn = Object(a["a"])([Object(r["a"])({ components: {} })], rn)));
    var ln = rn,
      cn = ln,
      hn = (i("808c"), Object(w["a"])(cn, nn, an, !1, null, "01baaf66", null)),
      dn = hn.exports;
    let un = class extends r["c"] {
      constructor() {
        (super(...arguments),
          (this.DIALOG = {
            WELFARE: 0,
            BIND: 1,
            LOGIN: 2,
            SUCCESS: 3,
            HASGET: 4,
            FAIL: 5,
            EXPIRED: 6,
          }),
          (this.dialogSwicth = this.DIALOG.WELFARE),
          (this.showAlert = !1),
          (this.msg = ""),
          (this.alertCallback = null));
      }
      get hasGetWelfare() {
        return this.$store.state.hasGetWelfare;
      }
      mounted() {}
      alertTips(t, e) {
        ((this.dialogSwicth = -1),
          (this.showAlert = !0),
          (this.msg = t),
          (this.alertCallback = e || null),
          this.openAnim());
      }
      showDialog(t) {
        (console.log("showDialog"), (this.dialogSwicth = t), this.openAnim());
      }
      closeAlert() {
        ((this.showAlert = !1), this.close());
      }
      close() {
        H.play("click");
        this.$refs.bg;
        const t = this.$refs.dialog,
          e = u["a"].timeline();
        (this.$emit("close"),
          e.fromTo(
            t,
            { y: 0, opacity: 1 },
            { y: 100, opacity: 0, ease: "power3", onComplete: () => {} },
          ));
      }
      openAnim() {
        u["a"].fromTo(
          this.$refs.dialog,
          { y: 100, opacity: 0 },
          { y: 0, opacity: 1, ease: "power3" },
        );
      }
      showWelfare() {
        ((this.dialogSwicth = this.DIALOG.WELFARE), this.openAnim());
      }
      getWelfare() {
        (console.log("getw"), window.getWelfare());
      }
      get() {
        window.checkLogin();
      }
    };
    un = Object(a["a"])(
      [
        Object(r["a"])({
          components: { BindDialog: Ke, LoginDialog: on, AlertDialog: dn },
        }),
      ],
      un,
    );
    var pn = un,
      mn = pn,
      fn = (i("81d5"), Object(w["a"])(mn, Yo, Go, !1, null, "13ec4ce2", null)),
      gn = fn.exports,
      vn = function () {
        var t = this,
          e = t._self._c;
        t._self._setupProxy;
        return e(
          "div",
          { ref: "videoWrapper", staticClass: "video_wrapper fullscreen" },
          [
            e("video", {
              ref: "video",
              staticClass: "fullscreen video",
              attrs: {
                src: t.videoSrc,
                width: t.width,
                height: t.height,
                preload: "auto",
                playsinline: "true",
                "webkit-playsinline": "true",
                "x5-video-player-type": "h5",
                "x5-video-orientation": "portraint",
                "x5-video-player-fullscreen": "false",
                airplay: "allow",
                "x-webkit-airplay": "allow",
                poster: t.videoPoster,
              },
            }),
          ],
        );
      },
      wn = [];
    let yn = class extends r["c"] {
      constructor() {
        (super(...arguments),
          (this.timer = 0),
          (this.audoPlayHander = null),
          (this.isClose = !1));
      }
      get isDEV() {
        return this.$store.state.isDEV;
      }
      get video() {
        return this.$refs.video;
      }
      get videoSrc() {
        return this.isDEV
          ? "media/openning-door.mp4"
          : window.openningDoorSrc;
      }
      mounted() {
        (console.log("videoNoController: ", this.videoSrc),
          this.initVideo(),
          this.isAutoPlay && this.play());
      }
      initVideo() {
        ((this.player = new MMD.VideoPlayer({
          videoElement: this.video,
          src: this.videoSrc,
          loop: !1,
          muted: !1,
          tryMultipleVideoPlayAtTheSameTime: !1,
          timesParam: [
            { name: "Door", time: 16.2 },
            { name: "Light", time: 21 },
            { name: "Harvest", time: 24 },
          ],
          onTimes: (t) => {
            switch (t) {
              case "Door":
                break;
              case "Light":
                H.play("bgm", -1);
                break;
              case "Harvest":
                this.openBumperHarvestPage();
                break;
            }
          },
          onStart: () => {
            this.$emit("onStart");
          },
          onEnd: () => {
            console.log("video end");
          },
        })),
          this.loopParam && this.loopParam.length > 1 && this.setTimer());
      }
      play() {
        (this.player.play(),
          (this.isClose = !1),
          this.video.currentTime >= 12 && H.pause("bgm"));
      }
      pause() {
        this.player.pause();
      }
      autoPlay() {
        (console.log("audoPlay"), this.player.play());
      }
      setTimer() {
        this.timer = setInterval(() => {
          if (this.isClose)
            return (
              console.log("isClose:", this.isClose),
              void clearInterval(this.timer)
            );
          this.video.currentTime >= this.loopParam[0] &&
            (this.video.currentTime = this.loopParam[1]);
        }, 15);
      }
      closeVideo() {
        ((this.isClose = !0), console.log("closeVideo"));
      }
      canplay() {
        (console.log("视频加载完成"),
          this.play(),
          this.video.removeEventListener("canplay", this.canplay));
      }
      setStartTime(t) {
        (console.log("setStartTime", t), (this.player.currentTimeAndPause = t));
      }
      setStartTimePlay(t) {
        (console.log("setStartTime", t),
          (this.player.currentTimeAndPlay = t),
          this.video.addEventListener("canplay", this.canplay));
      }
      resize(t) {
        this.player.paused
          ? console.log("视频目前处于暂停状态")
          : ((this.player.currentTimeAndPlay = this.video.currentTime + 4 * t),
            this.video.addEventListener("canplay", this.canplay));
      }
      openBumperHarvestPage() {
        this.$emit("openBumperHarvestPage");
      }
    };
    (Object(a["a"])(
      [Object(r["b"])({ default: 0 })],
      yn.prototype,
      "index",
      void 0,
    ),
      Object(a["a"])(
        [Object(r["b"])({ default: !0 })],
        yn.prototype,
        "anim",
        void 0,
      ),
      Object(a["a"])(
        [Object(r["b"])({ default: !0 })],
        yn.prototype,
        "muted",
        void 0,
      ),
      Object(a["a"])(
        [Object(r["b"])({ default: !1 })],
        yn.prototype,
        "isAutoPlay",
        void 0,
      ),
      Object(a["a"])(
        [Object(r["b"])({ default: 0 })],
        yn.prototype,
        "startTime",
        void 0,
      ),
      Object(a["a"])(
        [Object(r["b"])({ default: 1624 })],
        yn.prototype,
        "width",
        void 0,
      ),
      Object(a["a"])(
        [Object(r["b"])({ default: 750 })],
        yn.prototype,
        "height",
        void 0,
      ),
      Object(a["a"])(
        [Object(r["b"])({ default: [] })],
        yn.prototype,
        "loopParam",
        void 0,
      ),
      Object(a["a"])(
        [Object(r["b"])({ default: "" })],
        yn.prototype,
        "videoPoster",
        void 0,
      ),
      (yn = Object(a["a"])([Object(r["a"])({})], yn)));
    var xn = yn,
      bn = xn,
      Pn = (i("3986"), Object(w["a"])(bn, vn, wn, !1, null, "064155b1", null)),
      Tn = Pn.exports;
    class _n {
      constructor() {
        ((this.fontMap = {
          hwmct: {
            family: "hwmct",
            url: "fonts/hwmct.ttf",
            type: "ttf",
            descriptors: { style: "italic", weight: "700", display: "auto" },
            priority: 0,
          },
          xqjzt: {
            family: "xqjzt",
            url: "fonts/xqjzt.ttf",
            type: "tff",
            descriptors: { style: "italic", weight: "700", display: "auto" },
            priority: 0,
          },
        }),
          this.initStoreRes());
      }
      async init() {
        this.loadPriority(-1);
      }
      async loadPriority(t) {
        const e = [];
        for (const i in this.fontMap) {
          const s = this.fontMap[i];
          (s.priority !== t && -1 !== t) || e.push(s);
        }
        for (let i = 0; i < e.length; i++) {
          const t = e[i];
          await this.loadFont(t);
        }
      }
      initStoreRes() {
        for (const t in this.fontMap) {
          const e = this.fontMap[t];
          !1 !== e.preload && this.updateProgress(e.url, 0);
        }
      }
      loadFont(t) {
        return new Promise((e) => {
          console.log("loadFont:", t);
          const i = new FontFace(
            t.family,
            `url('${"./" + t.url}')`,
            t.descriptors,
          );
          (i || (!1 !== t.preload && this.updateProgress(t.url, 1)),
            i.load().then((i) => {
              (document.fonts.add(i),
                !1 !== t.preload && this.updateProgress(t.url, 1),
                e(i));
            }));
        });
      }
      updateProgress(t, e) {
        A.commit("UpdateResLoadProgress", { id: t, progress: e });
      }
    }
    var Sn = new _n();
    let Cn = class extends r["c"] {
      constructor() {
        (super(...arguments),
          (this.intervalId = 0),
          (this.width = window.innerWidth),
          (this.height = window.innerHeight),
          (this.showDialog = !1),
          (this.videoPoster =
            "images/loadingPage/background.jpg?v1"),
          (this.showBirdOutput = !0),
          (this.showDoorOutput = !1),
          (this.loopIndex = 0),
          (this.loopParam = [
            { guiguzi: [27.16, 25.2], bird: [3.96, 2] },
            { guiguzi: [27.16, 25.2], bird: [7.96, 6] },
            { guiguzi: [27.16, 25.2], bird: [11.96, 10] },
            { guiguzi: [27.16, 25.2], bird: [15.96, 14] },
          ]));
      }
      get videoStart() {
        switch (this.loopIndex) {
          case 1:
            return 4;
          case 2:
            return 8;
          case 3:
            return 12;
          default:
            return 0;
        }
      }
      get video() {
        return this.$store.state.video;
      }
      get pageSwitch() {
        return this.$store.state.pageSwitch;
      }
      get startLoad() {
        return this.$store.state.startLoad;
      }
      get pageSize() {
        return new E["Eb"](this.width, this.height);
      }
      get needRotate() {
        return this.$store.state.needRotate;
      }
      created() {
        this.correctionVideo();
      }
      mounted() {
        (this.onStart(),
          console.log("App mounted"),
          this.detectRotate(),
          (this.intervalId = setInterval(this.detectRotate.bind(this), 200)),
          window.addEventListener("resize", this.detectRotate.bind(this)),
          (window.showPopup = this.showDialogFunc.bind(this)),
          (window.setUsername = this.setUsername.bind(this)),
          (window.alertTips = this.alertTips.bind(this)),
          (window.setEnv = this.setEnv.bind(this)));
        const t = "1" == W("bres");
        t && this.onShowPosterPage();
        let e = !1;
        (document.addEventListener("touchstart", () => {
          e ||
            (console.log("touch", H.playing("bgm")),
            H.playing("bgm") ? (e = !0) : H.play("bgm", -1));
        }),
          Sn.init());
      }
      showDialogFunc(t) {
        (console.log("showDialogFunc"), (this.showDialog = !0));
        const e = this.$refs.dailog;
        e && e.showDialog(t);
      }
      alertTips(t, e) {
        this.showDialog = !0;
        const i = this.$refs.dailog;
        i && i.alertTips(t, e);
      }
      onTouchMove(t) {
        t.preventDefault();
      }
      detectRotate() {
        const t = this.width,
          e = this.height;
        ((this.width = Math.max(window.innerWidth, window.innerHeight)),
          (this.height = Math.min(window.innerWidth, window.innerHeight)));
        const i = window.innerWidth < window.innerHeight;
        this.$store.commit("setNeedRotate", i);
        var s = document.querySelector(":root");
        if (
          ((s.style.fontSize = 0.2 * this.height + "px"),
          this.width !== t || this.height !== e)
        ) {
          const t = this.$refs.renderer;
          null === t || void 0 === t || t.onWindowResize();
        }
        const o = this.$refs.cerealsPage;
        (o && o.onWindowResize(), this.correctionVideo());
      }
      correctionVideo() {
        const t = 1624 / 750,
          e = this.width / this.height,
          i = e - t,
          s = this.loopIndex;
        ((this.loopIndex = i < -0.75 ? 3 : i < -0.45 ? 2 : i < -0.1 ? 1 : 0),
          s !== this.loopIndex &&
            this.$refs.videoSection &&
            this.$refs.videoSection.resize(this.loopIndex - s));
      }
      destoryed() {
        (clearInterval(this.intervalId),
          window.removeEventListener("resize", this.detectRotate.bind(this)));
      }
      onStart() {
        this.$store.commit("setChapter", 0);
        const t = this.$refs.renderer;
        t.init();
      }
      onLoad() {
        this.showBirdOutput = !0;
        const t = this.$refs.videoSection;
        (console.log("onLoad:", this.loopIndex, 4 * this.loopIndex),
          t.setStartTimePlay(4 * this.loopIndex + 0.12),
          L("loading", "loadstart", "加载完成"));
      }
      showCerealsPage() {
        this.showBirdOutput = !0;
      }
      onBirdVideoStart() {
        (this.swicthPage("loading", !1),
          this.swicthPage("cereals", !0),
          L("btn", "cerealsPage", "谷物页"));
      }
      showInteractPage() {
        (this.swicthPage("interact", !0),
          (this.showBirdOutput = !1),
          this.swicthPage("cereals", !1),
          this.$refs.videoSection.pause(),
          this.$refs.videoSection.closeVideo(),
          setTimeout(() => {
            (this.$refs.videoSection.setStartTime(16.12), H.play("bgm", -1));
          }, 1500),
          L("btn", "interactPage", "交互页"));
      }
      showBumperHarvestPage() {
        (this.swicthPage("interact", !1),
          this.swicthPage("bumperHarvest", !0),
          L("btn", "bumperHarvestPage", "丰收页"));
      }
      showSwitchPage() {
        (this.swicthPage("switch", !0),
          this.swicthPage("bumperHarvest", !1),
          this.closeDoor(),
          L("btn", "switchPage", "选择页"));
      }
      showPosterPage() {
        (this.swicthPage("switch", !1),
          this.swicthPage("poster", !0),
          L("btn", "posterPage", "海报页"));
      }
      onSkipScene() {
        if (
          this.$store.state.interactChapterIndex >=
          this.$store.state.hasInteract.length - 1
        ) {
          ((this.showDoorOutput = !0),
            this.$refs.videoSection.play(),
            this.$refs.videoSection.setTimer());
          const t = this.$refs.renderer;
          return void t.nextScene();
        }
        const t = this.$refs.renderer;
        (t.nextScene(),
          L(
            "btn",
            "skipVideo",
            "跳过技能介绍" + (this.$store.state.interactChapterIndex - 1),
          ));
      }
      closeDoor() {
        (this.$refs.videoSection.pause(),
          this.$refs.videoSection.closeVideo(),
          (this.showDoorOutput = !1));
      }
      onGetWelfare() {
        (window.checkLogin(), L("btn", "welfare", "领取福利窗口"));
      }
      onCloseDialog() {
        this.showDialog = !1;
      }
      onAgain() {
        (this.swicthPage("switch", !0),
          setTimeout(() => {
            this.swicthPage("poster", !1);
          }, 500),
          L("page", "switchPage", "返回选择页"));
      }
      onShowPosterPage() {
        (this.swicthPage("loading", !1),
          this.swicthPage("openning", !1),
          this.swicthPage("interact", !1),
          this.swicthPage("poster", !0),
          this.$store.commit("setStartLoad", !0),
          this.$nextTick(() => {
            (this.$refs.posterPage, this.$refs.renderer);
          }),
          window.history.pushState(
            "object or string",
            "Title",
            U(window.location.href, "bres"),
          ),
          L("page", "showResult", "展示结果页"));
      }
      swicthPage(t, e) {
        this.$store.commit("UpdatePageSwitch", { pageName: t, enabled: e });
      }
      setUsername(t) {
        (console.log("setUsername"),
          this.$store.commit("setUsernameCommit", t));
      }
      setEnv(t) {
        this.$store.commit("setEnv", t);
      }
    };
    Cn = Object(a["a"])(
      [
        Object(r["a"])({
          components: {
            LoginPage: Pe,
            SwitchPage: Me,
            BumperHarvestPage: ze,
            ResultPage: Be,
            LoadingPage: le,
            InteractPage: Ut,
            CerealsPage: fe,
            Renderer: qo,
            PosterPage: Vi,
            Dialog: gn,
            BindDialog: Ke,
            VideoScreen: ht,
            Cutscene: Tn,
          },
        }),
      ],
      Cn,
    );
    var kn = Cn,
      In = kn,
      Mn = (i("69ba"), Object(w["a"])(In, o, n, !1, null, null, null)),
      On = Mn.exports,
      Fn = i("85fe"),
      An = function () {
        var t = this,
          e = t._self._c;
        t._self._setupProxy;
        return e(
          "div",
          { class: `saved_poster_wrapper clue_${t.clueIndex} pv_${t.version}` },
          [
            e(
              "div",
              { staticClass: "clue_text_wrapper" },
              [
                e("div", {
                  directives: [
                    {
                      name: "multi-ref",
                      rawName: "v-multi-ref:gap",
                      arg: "gap",
                    },
                  ],
                  class: "gap " + (1 === t.clueIndex ? "light" : ""),
                }),
                t._l(t.clueText, function (i, s) {
                  return e("div", { key: i }, [
                    e(
                      "p",
                      {
                        class: 0 === s ? "first_line" : "",
                        style: {
                          color: 1 === t.clueIndex ? "#ffffff" : "#3c444c",
                        },
                      },
                      t._l(i, function (s, o) {
                        return e("span", { key: i + s + o }, [t._v(t._s(s))]);
                      }),
                      0,
                    ),
                    e("div", {
                      directives: [
                        {
                          name: "multi-ref",
                          rawName: "v-multi-ref:gap",
                          arg: "gap",
                        },
                      ],
                      class: "gap " + (1 === t.clueIndex ? "light" : ""),
                    }),
                  ]);
                }),
              ],
              2,
            ),
            e(
              "div",
              { staticClass: "guess_text_wrapper" },
              t._l(t.guessText, function (i, s) {
                return e("div", { key: i }, [
                  e(
                    "p",
                    { class: 0 === s ? "first_line" : "" },
                    t._l(i, function (s, o) {
                      return e("span", { key: i + s + o }, [t._v(t._s(s))]);
                    }),
                    0,
                  ),
                ]);
              }),
              0,
            ),
            e("div", {
              class: "hero hero_" + t.guessHero,
              style: {
                backgroundImage: `url(${t.publicPath}images/poster/hero/${t.guessHero ? t.guessHero : "default"}.png)`,
              },
            }),
            e("div", { staticClass: "qrcode" }),
          ],
        );
      },
      En = [],
      jn = i("c0e9"),
      $n = i.n(jn);
    let zn = class extends r["c"] {
      constructor() {
        (super(...arguments),
          (this.publicPath =
            "./"),
          (this.isCreating = !1));
      }
      get clueIndex() {
        return this.$store.state.clueIndex;
      }
      get clueText() {
        return this.$store.state.clueText;
      }
      get guessText() {
        return this.$store.state.guessText;
      }
      get guessHero() {
        return this.$store.state.guessHero;
      }
      get posterPageVisible() {
        return this.$store.state.pageSwitch.poster;
      }
      get enablePoster() {
        return this.$store.state.enablePoster;
      }
      onClueIndexChange() {
        this.getPoster();
      }
      onClueTextChange() {
        this.getPoster();
      }
      onGuessTextChange() {
        this.getPoster();
      }
      onPosterVisibleChange(t) {
        t && this.enablePoster && this.getPoster();
      }
      get version() {
        return 1 === this.clueIndex || 3 == this.clueIndex ? 0 : 1;
      }
      async getPoster() {
        if (!this.posterPageVisible) return;
        if (this.isCreating) return;
        if (!this.enablePoster) return;
        (console.log(
          "getPoster",
          this.guessText,
          this.clueIndex,
          this.clueText,
        ),
          (this.isCreating = !0));
        const t = await new Promise((t) => {
          this.$nextTick(async () => {
            const e = await $n()(this.$el, { useCORS: !0, scale: 1 });
            t(e.toDataURL("image/jpeg", 1));
          });
        });
        (this.$store.commit("setPosterBase64", t), (this.isCreating = !1));
      }
      mounted() {
        this.enablePoster && this.getPoster();
      }
    };
    (Object(a["a"])(
      [Object(r["d"])("clueIndex")],
      zn.prototype,
      "onClueIndexChange",
      null,
    ),
      Object(a["a"])(
        [Object(r["d"])("clueText")],
        zn.prototype,
        "onClueTextChange",
        null,
      ),
      Object(a["a"])(
        [Object(r["d"])("guessText")],
        zn.prototype,
        "onGuessTextChange",
        null,
      ),
      Object(a["a"])(
        [Object(r["d"])("posterPageVisible")],
        zn.prototype,
        "onPosterVisibleChange",
        null,
      ),
      (zn = Object(a["a"])([Object(r["a"])({})], zn)));
    var Dn = zn,
      Ln = Dn,
      Vn = (i("bca0"), Object(w["a"])(Ln, An, En, !1, null, "be90c490", null)),
      Wn = Vn.exports;
    (s["default"].use(Fn["a"]), (s["default"].config.productionTip = !1));
    var Un = {
      log: function (t) {},
      info: function (t) {},
      warn: function (t) {},
    };
    window.console = Un;
    const Nn =
      /^(iPad|iPhone|iPod)/.test(window.navigator.platform) ||
      (/^Mac/.test(window.navigator.platform) &&
        window.navigator.maxTouchPoints > 1);
    (Nn && ((window.createImageBitmap = void 0), Un.log("is_ios")),
      (window.onload = function () {
        (new s["default"]({ render: (t) => t(On), store: A }).$mount("#app"),
          A.state.enablePoster &&
            new s["default"]({ store: A, render: (t) => t(Wn) }).$mount(
              "#saved_poster",
            ));
      }));
  },
  ce58: function (t, e) {
    t.exports =
      "precision highp float;\nuniform float time;\nuniform float fps;\nuniform vec2 grid;\nuniform float opacity;\nuniform sampler2D waveMap;\nvarying vec2 vUv;\nvec4 seqTexture(sampler2D tex, vec2 uv) {\n\tfloat colNum = grid.x;\n\tfloat rowNum = grid.y;\n\tfloat index = floor(mod(floor(time * fps), colNum * rowNum));\n\tfloat col = floor(mod(index, colNum));\n\tfloat row = (rowNum - 1.0) - floor(index / colNum);\n\treturn texture2D(tex, (uv / grid) + (vec2(col, row) / grid));\n}\nvoid main() {\n\tvec2 uv = vec2(vUv.x, 1.0 - vUv.y);\n\tvec4 col;\n\tcol = seqTexture(waveMap, uv);\n\tgl_FragColor = vec4(col.xyz, col.a * opacity);\n}\n";
  },
  ce5f: function (t, e, i) {},
  cf5e: function (t, e, i) {
    "use strict";
    i("3469");
  },
  d30e: function (t, e, i) {
    "use strict";
    i("9755");
  },
  d7c5: function (t, e) {
    t.exports =
      "precision highp float;\nvarying vec3 vWorldPos;\nuniform sampler2D map;\nvarying vec2 vUv;\nvoid main() {\n\tgl_FragColor = texture2D(map, vUv);\n}\n";
  },
  d8d2: function (t, e, i) {
    "use strict";
    i("df42");
  },
  d910: function (t, e, i) {
    "use strict";
    i("7059");
  },
  ddc9: function (t, e) {
    t.exports =
      "varying vec2 vUv;\nvarying vec3 vWorldPos;\nvarying vec3 vViewNormal;\nvarying vec3 vViewDir;\nvarying vec3 vViewPosition;\nuniform float time;\nuniform float delta;\nuniform float random;\nvoid main() {\n\tvUv = uv;\n\tvWorldPos = (modelMatrix * vec4(position, 1.0)).xyz;\n\tvViewNormal = normalize(modelViewMatrix * vec4(normal, 0.0)).xyz;\n\tvViewPosition = (modelViewMatrix * vec4(position, 1.0)).xyz;\n\tvViewDir = normalize(-vViewPosition);\n\tvec3 newNodePos = position;\n\tfloat height = 1.0 - vUv.y;\n\tfloat k = pow(height, 2.0);\n\tfloat offest = ((k * cos((time * 4.0) * random)) * delta) * 10.0;\n\tgl_Position = (projectionMatrix * modelViewMatrix) * vec4(newNodePos.x + offest, newNodePos.y, newNodePos.z, 1.0);\n}\n";
  },
  ddee: function (t, e, i) {
    "use strict";
    i("824a");
  },
  df42: function (t, e, i) {},
  e069: function (t, e) {
    t.exports =
      "precision highp float;\nuniform float time;\nuniform float shakeDir;\nuniform float shakePinPos;\nuniform float shakeOffset;\nuniform float shakeFreq;\nuniform float shakePin;\nuniform sampler2D rice0Map;\nuniform sampler2D rice1Map;\nuniform sampler2D rice2Map;\nuniform float progress;\nvarying vec2 vUv;\nvoid main() {\n\tvec2 uv = vUv;\n\tfloat shake = 0.0;\n\tfloat pin = (smoothstep(1.0 - shakePinPos, shakePinPos, uv.y) * shakePin) * 0.1;\n\tfloat k = pow(pin, 1.2);\n\tshake = (((-shakeDir * shakeOffset) * k) * 0.1) + ((sin((-time * 5.0) + ((uv.y * 0.5) * shakeFreq)) * 0.04) * pin);\n\tuv.x += shake;\n\tuv.y = 1.0 - vUv.y;\n\tvec3 color;\n\tfloat o;\n\tif (progress > 0.6) {\n\t\tvec4 rice1 = texture2D(rice1Map, uv);\n\t\tvec4 rice2 = texture2D(rice2Map, uv);\n\t\tfloat pro = smoothstep(0.6, 1.0, progress);\n\t\tcolor = mix(rice1.rgb, rice2.rgb, pro);\n\t\to = mix(rice1.a, rice2.a, pro);\n\t}\n\telse if (progress > 0.2) {\n\t\tvec4 rice0 = texture2D(rice0Map, uv);\n\t\tvec4 rice1 = texture2D(rice1Map, uv);\n\t\tfloat pro = smoothstep(0.2, 0.6, progress);\n\t\tcolor = mix(rice0.rgb, rice1.rgb, pro);\n\t\to = mix(rice0.a, rice1.a, pro);\n\t}\n\telse {\n\t\tvec4 rice0 = texture2D(rice0Map, uv);\n\t\tcolor = rice0.rgb;\n\t\to = rice0.a;\n\t}\n\tgl_FragColor = vec4(color, o);\n}\n";
  },
  e38e: function (t, e, i) {},
  e59b: function (t, e) {
    t.exports =
      "varying vec2 vUv;\nvarying vec3 vWorldPos;\nvarying vec3 vViewNormal;\nvarying vec3 vViewDir;\nvarying vec3 vViewPosition;\nuniform float time;\nuniform float minY;\nuniform float maxY;\nuniform float delta;\nuniform float random;\nuniform float shakeDir;\nuniform float shakePinPos;\nuniform float shakeOffset;\nuniform float shakeFreq;\nuniform float shakePin;\nvoid main() {\n\tvUv = uv;\n\tvWorldPos = (modelMatrix * vec4(position, 1.0)).xyz;\n\tvViewNormal = normalize(modelViewMatrix * vec4(normal, 0.0)).xyz;\n\tvViewPosition = (modelViewMatrix * vec4(position, 1.0)).xyz;\n\tvViewDir = normalize(-vViewPosition);\n\tvec3 newNodePos = position;\n\tfloat height = 1.0 - smoothstep(0.0, maxY, newNodePos.y);\n\tfloat shake = 0.0;\n\tfloat pin = smoothstep(1.0 - shakePinPos, shakePinPos, height) * shakePin;\n\tfloat k = pow(pin, 1.2);\n\tshake = (((shakeDir * shakeOffset) * k) * 0.1) + ((sin((-time * 5.0) + ((height * 0.5) * shakeFreq)) * 0.04) * pin);\n\tfloat offest = shake;\n\tgl_Position = (projectionMatrix * modelViewMatrix) * vec4(newNodePos.x + (offest * 5.0), newNodePos.y, newNodePos.z, 1.0);\n}\n";
  },
  e61b: function (t, e, i) {},
  eb67: function (t, e, i) {},
  ee9d: function (t, e, i) {
    "use strict";
    i("3199");
  },
  f059: function (t, e, i) {},
  f395: function (t, e, i) {
    "use strict";
    i("0432");
  },
  f5ea: function (t, e, i) {},
  f79c: function (t, e, i) {
    "use strict";
    i("f059");
  },
  f7a9: function (t, e) {
    t.exports =
      "precision highp float;\nuniform float time;\nuniform sampler2D map;\nuniform sampler2D nosieMap;\nuniform float magnitude;\nvarying vec2 vUv;\nvoid main() {\n\tgl_FragColor = texture2D(map, vUv);\n}\n";
  },
  fc79: function (t, e, i) {},
});
