@minicode-dev/chat 0.1.12 → 0.1.14

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (107) hide show
  1. package/CHANGELOG.md +112 -5
  2. package/README.md +401 -309
  3. package/assets/sounds/effects/avalanche.mp3 +0 -0
  4. package/assets/sounds/racing/car_boost.mp3 +0 -0
  5. package/assets/sounds/racing/car_boost.ogg +0 -0
  6. package/assets/sounds/racing/car_bump.mp3 +0 -0
  7. package/assets/sounds/racing/car_bump.ogg +0 -0
  8. package/assets/sounds/racing/car_drift_loop.mp3 +0 -0
  9. package/assets/sounds/racing/car_drift_loop.ogg +0 -0
  10. package/assets/sounds/racing/car_engine_loop.mp3 +0 -0
  11. package/assets/sounds/racing/car_engine_loop.ogg +0 -0
  12. package/assets/sounds/racing/car_engine_start.mp3 +0 -0
  13. package/assets/sounds/racing/car_engine_start.ogg +0 -0
  14. package/assets/sounds/racing/countdown_beep.mp3 +0 -0
  15. package/assets/sounds/racing/countdown_beep.ogg +0 -0
  16. package/assets/sounds/racing/countdown_go.mp3 +0 -0
  17. package/assets/sounds/racing/countdown_go.ogg +0 -0
  18. package/assets/sounds/racing/final_lap.mp3 +0 -0
  19. package/assets/sounds/racing/final_lap.ogg +0 -0
  20. package/assets/sounds/racing/finish_line.mp3 +0 -0
  21. package/assets/sounds/racing/finish_line.ogg +0 -0
  22. package/assets/sounds/racing/lap_complete.mp3 +0 -0
  23. package/assets/sounds/racing/lap_complete.ogg +0 -0
  24. package/assets/sounds/racing/music_circuit.mp3 +0 -0
  25. package/assets/sounds/racing/music_circuit.ogg +0 -0
  26. package/assets/sounds/racing/music_final_lap.mp3 +0 -0
  27. package/assets/sounds/racing/music_final_lap.ogg +0 -0
  28. package/assets/sounds/racing/race_defeat.mp3 +0 -0
  29. package/assets/sounds/racing/race_defeat.ogg +0 -0
  30. package/assets/sounds/racing/race_victory.mp3 +0 -0
  31. package/assets/sounds/racing/race_victory.ogg +0 -0
  32. package/assets/sounds/tanks/barrel_explode.mp3 +0 -0
  33. package/assets/sounds/tanks/barrel_explode.ogg +0 -0
  34. package/assets/sounds/tanks/crate_break.mp3 +0 -0
  35. package/assets/sounds/tanks/crate_break.ogg +0 -0
  36. package/assets/sounds/tanks/health_pickup.mp3 +0 -0
  37. package/assets/sounds/tanks/health_pickup.ogg +0 -0
  38. package/assets/sounds/tanks/last_life.mp3 +0 -0
  39. package/assets/sounds/tanks/last_life.ogg +0 -0
  40. package/assets/sounds/tanks/life_lost.mp3 +0 -0
  41. package/assets/sounds/tanks/life_lost.ogg +0 -0
  42. package/assets/sounds/tanks/respawn.mp3 +0 -0
  43. package/assets/sounds/tanks/respawn.ogg +0 -0
  44. package/assets/sounds/tanks/shield_end.mp3 +0 -0
  45. package/assets/sounds/tanks/shield_end.ogg +0 -0
  46. package/assets/sounds/tanks/shield_loop.mp3 +0 -0
  47. package/assets/sounds/tanks/shield_loop.ogg +0 -0
  48. package/assets/sounds/tanks/wall_hit.mp3 +0 -0
  49. package/assets/sounds/tanks/wall_hit.ogg +0 -0
  50. package/dist/chunks/{BattleshipGameCard-iRk8d4vR.js → BattleshipGameCard-B-B4r7lK.js} +146 -144
  51. package/dist/chunks/{BattleshipGameCard-iRk8d4vR.js.map → BattleshipGameCard-B-B4r7lK.js.map} +1 -1
  52. package/dist/chunks/{ChatContext-DjIEifGY.js → ChatContext-DQtKsR6Z.js} +2 -2
  53. package/dist/chunks/{ChatContext-DjIEifGY.js.map → ChatContext-DQtKsR6Z.js.map} +1 -1
  54. package/dist/chunks/RacingLiveGameCard-c1G7uoDI.js +1654 -0
  55. package/dist/chunks/RacingLiveGameCard-c1G7uoDI.js.map +1 -0
  56. package/dist/chunks/{TanksGameCard-B47ZQcSr.js → TanksGameCard-CvTaF7tu.js} +164 -162
  57. package/dist/chunks/{TanksGameCard-B47ZQcSr.js.map → TanksGameCard-CvTaF7tu.js.map} +1 -1
  58. package/dist/chunks/TanksLiveGameCard-COr9Oay5.js +1011 -0
  59. package/dist/chunks/TanksLiveGameCard-COr9Oay5.js.map +1 -0
  60. package/dist/chunks/avalancheScene3d-Z5QyZIid.js +1299 -0
  61. package/dist/chunks/avalancheScene3d-Z5QyZIid.js.map +1 -0
  62. package/dist/chunks/connect4Sounds-DmD-E9kX.js +235 -0
  63. package/dist/chunks/connect4Sounds-DmD-E9kX.js.map +1 -0
  64. package/dist/chunks/connectionStore-DwgIUl30.js +13 -0
  65. package/dist/chunks/connectionStore-DwgIUl30.js.map +1 -0
  66. package/dist/chunks/createLiveScene-CWBunxPi.js +367 -0
  67. package/dist/chunks/createLiveScene-CWBunxPi.js.map +1 -0
  68. package/dist/chunks/createRaceScene-C7Rw89kj.js +305 -0
  69. package/dist/chunks/createRaceScene-C7Rw89kj.js.map +1 -0
  70. package/dist/chunks/{createTankScene-CV7Brxmt.js → createTankScene-yhX6la27.js} +150 -147
  71. package/dist/chunks/{createTankScene-CV7Brxmt.js.map → createTankScene-yhX6la27.js.map} +1 -1
  72. package/dist/chunks/decor-CyyCnmct.js +418 -0
  73. package/dist/chunks/decor-CyyCnmct.js.map +1 -0
  74. package/dist/chunks/fx-1ZwzmPWj.js +458 -0
  75. package/dist/chunks/fx-1ZwzmPWj.js.map +1 -0
  76. package/dist/chunks/fx-UZwhOmdl.js +584 -0
  77. package/dist/chunks/fx-UZwhOmdl.js.map +1 -0
  78. package/dist/chunks/gameStatus-BChd29yI.js +62 -0
  79. package/dist/chunks/gameStatus-BChd29yI.js.map +1 -0
  80. package/dist/chunks/{connect4Sounds-Cv0q31VW.js → games-BvYTWgaR.js} +814 -951
  81. package/dist/chunks/games-BvYTWgaR.js.map +1 -0
  82. package/dist/chunks/rolldown-runtime-CGnMp29N.js +10 -0
  83. package/dist/chunks/tank-DjEQ4FXF.js +553 -0
  84. package/dist/chunks/tank-DjEQ4FXF.js.map +1 -0
  85. package/dist/chunks/tanks-live-BcKmrhnV.js +261 -0
  86. package/dist/chunks/tanks-live-BcKmrhnV.js.map +1 -0
  87. package/dist/chunks/{tanksSounds-CUNDIOal.js → tanksSounds-DwjfSp3W.js} +43 -11
  88. package/dist/chunks/tanksSounds-DwjfSp3W.js.map +1 -0
  89. package/dist/chunks/track-BcnnpnAm.js +259 -0
  90. package/dist/chunks/track-BcnnpnAm.js.map +1 -0
  91. package/dist/chunks/util-DwI9bfS7.js +57 -0
  92. package/dist/chunks/util-DwI9bfS7.js.map +1 -0
  93. package/dist/index.js +2176 -1592
  94. package/dist/index.js.map +1 -1
  95. package/dist/styles.css +1 -1
  96. package/index.d.ts +4 -2
  97. package/package.json +1 -1
  98. package/dist/chunks/TanksLiveGameCard-DGsnMD3j.js +0 -1225
  99. package/dist/chunks/TanksLiveGameCard-DGsnMD3j.js.map +0 -1
  100. package/dist/chunks/connect4Sounds-Cv0q31VW.js.map +0 -1
  101. package/dist/chunks/createLiveScene-BqI7qV4n.js +0 -364
  102. package/dist/chunks/createLiveScene-BqI7qV4n.js.map +0 -1
  103. package/dist/chunks/fx-BHsl4S_J.js +0 -1470
  104. package/dist/chunks/fx-BHsl4S_J.js.map +0 -1
  105. package/dist/chunks/gameStatus-Cu1Z8un9.js +0 -69
  106. package/dist/chunks/gameStatus-Cu1Z8un9.js.map +0 -1
  107. package/dist/chunks/tanksSounds-CUNDIOal.js.map +0 -1
@@ -0,0 +1,584 @@
1
+ import { AdditiveBlending as e, Box3 as t, BoxGeometry as n, BufferAttribute as r, BufferGeometry as i, CanvasTexture as a, CircleGeometry as o, Color as s, CylinderGeometry as c, DynamicDrawUsage as l, ExtrudeGeometry as u, Float32BufferAttribute as d, Group as f, MeshBasicMaterial as p, MeshLambertMaterial as m, MeshStandardMaterial as h, NormalBlending as g, Points as _, ShaderMaterial as v, Shape as y, SphereGeometry as b, Sprite as x, SpriteMaterial as S, Vector2 as C, Vector3 as w } from "three";
2
+ import { mergeBufferGeometries as T } from "three/examples/jsm/utils/BufferGeometryUtils.js";
3
+ // src/effects/avalanche/models/cars.js
4
+ var E = [
5
+ "#ff2b3d",
6
+ "#ffd23f",
7
+ "#2f6bff",
8
+ "#7be22c",
9
+ "#ff7a1a",
10
+ "#ff4fb0",
11
+ "#f5f6f8"
12
+ ], D = {
13
+ tire: "#1b1c21",
14
+ rim: "#cfd5de",
15
+ hub: "#3a3d45",
16
+ chrome: "#dfe4ec",
17
+ dark: "#2a2c33",
18
+ black: "#111216",
19
+ white: "#f4f4f6",
20
+ head: "#fff2bf",
21
+ tail: "#ff1f3a"
22
+ }, ee = [
23
+ "body",
24
+ "glass",
25
+ "wheels",
26
+ "trim",
27
+ "lights"
28
+ ];
29
+ function te(e) {
30
+ let t = e.index ? e.toNonIndexed() : e;
31
+ return t.deleteAttribute("uv"), t;
32
+ }
33
+ function O(e, t) {
34
+ let n = te(e), r = new s(t), i = new Float32Array(n.attributes.position.count * 3);
35
+ for (let e = 0; e < i.length; e += 3) r.toArray(i, e);
36
+ return n.setAttribute("color", new d(i, 3)), n;
37
+ }
38
+ function k(e, t, n, r, i = r.bevel) {
39
+ let a = Math.max(.01, t - n * 2);
40
+ return new u(e, {
41
+ depth: a,
42
+ bevelEnabled: !0,
43
+ bevelThickness: n,
44
+ bevelSize: n,
45
+ bevelSegments: i,
46
+ curveSegments: r.curve
47
+ }).translate(0, 0, -a / 2);
48
+ }
49
+ function A(e, t, r, i, a, o, s, c = .025) {
50
+ if (e.low || !c || c * 2.5 > Math.min(t, r, i)) return new n(t, r, i).translate(a, o, s);
51
+ let l = t / 2 - c, u = r / 2 - c, d = new y();
52
+ return d.moveTo(-l, -u), d.lineTo(l, -u), d.lineTo(l, u), d.lineTo(-l, u), k(d, i, c, e, 1).translate(a, o, s);
53
+ }
54
+ function j(e, t, n, r, i, a, o) {
55
+ let s = new c(e, e, t, n);
56
+ return r === "x" ? s.rotateZ(Math.PI / 2) : r === "z" && s.rotateX(Math.PI / 2), s.translate(i, a, o);
57
+ }
58
+ function M(e) {
59
+ let t = new y();
60
+ return e.forEach((e, n) => {
61
+ if (e.arch) {
62
+ let [n, r, i, a] = e.arch, o = Math.asin((r - a) / i);
63
+ t.absarc(n, r, i, Math.PI + o, -o, !0);
64
+ } else e.q ? t.quadraticCurveTo(...e.q) : n === 0 ? t.moveTo(...e) : t.lineTo(...e);
65
+ }), t;
66
+ }
67
+ function N(e, t, n) {
68
+ n.forEach(({ x: n, r, w: i, z: a }) => {
69
+ [-1, 1].forEach((s) => {
70
+ let c = s * a;
71
+ t.wheels.push(O(j(r, i, e.radial, "z", n, r, c), D.tire));
72
+ let l = [[
73
+ r * .6,
74
+ e.radial,
75
+ D.rim,
76
+ .004
77
+ ]];
78
+ e.low || l.push([
79
+ r * .2,
80
+ 6,
81
+ D.hub,
82
+ .008
83
+ ]), l.forEach(([e, a, l, u]) => {
84
+ let d = new o(e, a);
85
+ s < 0 && d.rotateY(Math.PI), t.wheels.push(O(d.translate(n, r, c + s * (i / 2 + u)), l));
86
+ });
87
+ });
88
+ });
89
+ }
90
+ function ne(e) {
91
+ let t = {
92
+ body: [],
93
+ glass: [],
94
+ wheels: [],
95
+ trim: [],
96
+ lights: []
97
+ };
98
+ return t.body.push(k(M([
99
+ [-1.06, .16],
100
+ { arch: [
101
+ -.72,
102
+ .22,
103
+ .31,
104
+ .16
105
+ ] },
106
+ { arch: [
107
+ .76,
108
+ .22,
109
+ .31,
110
+ .16
111
+ ] },
112
+ [1.1, .16],
113
+ { q: [
114
+ 1.15,
115
+ .17,
116
+ 1.15,
117
+ .26
118
+ ] },
119
+ { q: [
120
+ 1.14,
121
+ .38,
122
+ 1,
123
+ .4
124
+ ] },
125
+ [.42, .46],
126
+ [-.7, .48],
127
+ { q: [
128
+ -1.06,
129
+ .49,
130
+ -1.1,
131
+ .38
132
+ ] },
133
+ [-1.11, .22],
134
+ { q: [
135
+ -1.11,
136
+ .16,
137
+ -1.06,
138
+ .16
139
+ ] }
140
+ ]), .9, .05, e)), t.glass.push(k(M([
141
+ [.4, .46],
142
+ [.02, .74],
143
+ [-.42, .74],
144
+ [-.86, .47]
145
+ ]), .76, .03, e)), t.body.push(A(e, .5, .06, .8, -.2, .79, 0, .02)), t.body.push(A(e, .16, .05, .86, -1.05, .6, 0, .02)), e.low || [-1, 1].forEach((n) => t.body.push(A(e, .08, .05, .07, .32, .54, n * .475, 0))), N(e, t, [{
146
+ x: .76,
147
+ r: .22,
148
+ w: .2,
149
+ z: .4
150
+ }, {
151
+ x: -.72,
152
+ r: .22,
153
+ w: .2,
154
+ z: .4
155
+ }]), t.trim.push(O(A(e, .1, .1, .92, 1.17, .17, 0, .03), D.dark), O(A(e, .1, .1, .92, -1.15, .18, 0, .03), D.dark), O(A(e, .04, .07, .44, 1.2, .27, 0, 0), D.black)), [-1, 1].forEach((n) => {
156
+ t.trim.push(O(A(e, .05, .12, .05, -1.03, .53, n * .3, 0), D.dark)), e.low || t.trim.push(O(j(.035, .1, 8, "x", -1.17, .1, n * .22), D.chrome)), t.lights.push(O(A(e, .06, .06, .2, 1.18, .35, n * .29, 0), D.head), O(A(e, .04, .06, .24, -1.17, .36, n * .27, 0), D.tail));
157
+ }), t;
158
+ }
159
+ function re(e) {
160
+ let t = {
161
+ body: [],
162
+ glass: [],
163
+ wheels: [],
164
+ trim: [],
165
+ lights: []
166
+ };
167
+ return t.body.push(k(M([
168
+ [-1.12, .17],
169
+ { arch: [
170
+ -.74,
171
+ .25,
172
+ .34,
173
+ .17
174
+ ] },
175
+ { arch: [
176
+ .8,
177
+ .22,
178
+ .31,
179
+ .17
180
+ ] },
181
+ [1.15, .17],
182
+ [1.18, .21],
183
+ [1.18, .44],
184
+ [1.13, .5],
185
+ [-1.1, .5],
186
+ [-1.15, .46],
187
+ [-1.15, .22]
188
+ ]), .96, .05, e)), t.glass.push(k(M([
189
+ [.28, .47],
190
+ [-.02, .76],
191
+ [-.58, .76],
192
+ [-.8, .47]
193
+ ]), .8, .03, e)), t.body.push(A(e, .62, .06, .86, -.3, .8, 0, .02), A(e, .34, .08, .3, .62, .58, 0, .025), A(e, .2, .05, 1, -1.04, .75, 0, .02)), N(e, t, [{
194
+ x: .8,
195
+ r: .22,
196
+ w: .2,
197
+ z: .4
198
+ }, {
199
+ x: -.74,
200
+ r: .25,
201
+ w: .26,
202
+ z: .39
203
+ }]), t.trim.push(O(A(e, .06, .08, 1, 1.23, .2, 0, .02), D.chrome), O(A(e, .06, .08, 1, -1.23, .2, 0, .02), D.chrome), O(A(e, .03, .16, .62, 1.235, .33, 0, 0), D.black), O(A(e, .03, .05, .22, .79, .59, 0, 0), D.black)), [-1, 1].forEach((n) => {
204
+ t.trim.push(O(A(e, .82, .012, .08, .71, .553, n * .08, 0), D.black), O(A(e, .6, .012, .08, -.3, .833, n * .08, 0), D.black), O(A(e, .3, .012, .08, -.98, .553, n * .08, 0), D.black), O(A(e, .06, .18, .06, -1.04, .64, n * .34, 0), D.dark)), e.low || t.trim.push(O(j(.04, .12, 8, "x", -1.2, .12, n * .3), D.chrome)), t.lights.push(O(j(.065, .03, e.low ? 6 : 10, "x", 1.245, .34, n * .37), D.head), O(A(e, .03, .07, .3, -1.215, .4, n * .26, 0), D.tail));
205
+ }), t;
206
+ }
207
+ function ie(e) {
208
+ let t = {
209
+ body: [],
210
+ glass: [],
211
+ wheels: [],
212
+ trim: [],
213
+ lights: []
214
+ }, n = k(M([
215
+ [-.96, .12],
216
+ [1.14, .12],
217
+ [1.14, .17],
218
+ [.55, .3],
219
+ [.2, .36],
220
+ [.14, .4],
221
+ [-.16, .4],
222
+ [-.24, .54],
223
+ [-.4, .56],
224
+ [-.96, .3]
225
+ ]), .44, .04, e), r = n.attributes.position;
226
+ for (let e = 0; e < r.count; e += 1) {
227
+ let t = r.getX(e), n = t > .35 ? 1 - .55 * Math.min(1, (t - .35) / .85) : t < -.5 ? 1 - .3 * Math.min(1, (-.5 - t) / .5) : 1;
228
+ r.setZ(e, r.getZ(e) * n);
229
+ }
230
+ return n.computeVertexNormals(), t.body.push(n, A(e, .6, .2, .76, -.12, .24, 0, .05), A(e, .22, .04, 1, 1.12, .07, 0, .015), A(e, .24, .05, .84, -.98, .71, 0, .02)), t.glass.push(A(e, .04, .045, .15, .08, .49, 0, 0)), N(e, t, [{
231
+ x: .82,
232
+ r: .2,
233
+ w: .17,
234
+ z: .415
235
+ }, {
236
+ x: -.74,
237
+ r: .24,
238
+ w: .24,
239
+ z: .38
240
+ }]), t.trim.push(O(new b(.12, e.low ? 8 : 10, e.low ? 6 : 8).translate(-.03, .47, 0), D.white), O(A(e, .06, .36, .05, -.94, .52, 0, 0), D.dark), O(A(e, .03, .06, .08, -.25, .56, 0, 0), D.black)), [-1, 1].forEach((n) => {
241
+ t.trim.push(O(A(e, .24, .12, .025, 1.14, .1, n * .5, 0), D.dark), O(A(e, .3, .24, .025, -.98, .64, n * .43, 0), D.dark), O(A(e, .04, .03, .2, .82, .2, n * .24, 0), D.dark), O(A(e, .04, .03, .1, -.74, .24, n * .23, 0), D.dark));
242
+ }), e.low || t.trim.push(O(j(.03, .08, 8, "x", -1, .28, 0), D.chrome)), t.lights.push(O(A(e, .03, .06, .1, -1.015, .2, 0, 0), D.tail)), t;
243
+ }
244
+ function ae(e) {
245
+ let t = (t, n) => e ? new m(t) : new h({
246
+ ...t,
247
+ ...n
248
+ });
249
+ return {
250
+ body: t({ color: 16777215 }, {
251
+ roughness: .28,
252
+ metalness: .3
253
+ }),
254
+ glass: t({ color: 1844790 }, {
255
+ roughness: .12,
256
+ metalness: .6
257
+ }),
258
+ wheels: t({
259
+ color: 16777215,
260
+ vertexColors: !0
261
+ }, {
262
+ roughness: .75,
263
+ metalness: .15
264
+ }),
265
+ trim: t({
266
+ color: 16777215,
267
+ vertexColors: !0
268
+ }, {
269
+ roughness: .35,
270
+ metalness: .55
271
+ }),
272
+ lights: new p({
273
+ color: 16777215,
274
+ vertexColors: !0,
275
+ toneMapped: !1
276
+ })
277
+ };
278
+ }
279
+ function P(e, n, r, i, a) {
280
+ let o = ee.filter((e) => n[e].length).map((t) => {
281
+ let r = T(n[t].map(te));
282
+ if (!r) throw Error(`avalanche cars: cannot merge ${e}.${t}`);
283
+ return r.computeBoundingBox(), {
284
+ name: t,
285
+ geometry: r
286
+ };
287
+ }), s = new t();
288
+ o.forEach(({ geometry: e }) => s.union(e.boundingBox));
289
+ let c = s.getCenter(new w()), l = s.getSize(new w());
290
+ return o.forEach(({ geometry: e }) => {
291
+ e.translate(-c.x, -c.y, -c.z), e.computeBoundingSphere();
292
+ }), {
293
+ kind: e,
294
+ parts: o.map(({ name: e, geometry: t }) => ({
295
+ geometry: t,
296
+ material: r[e],
297
+ tinted: e === "body"
298
+ })),
299
+ palette: i,
300
+ radius: Math.cbrt(l.x * l.y * l.z * 3 / (4 * Math.PI)),
301
+ ...a
302
+ };
303
+ }
304
+ function oe({ lowPower: e = !1 } = {}) {
305
+ let t = {
306
+ low: e,
307
+ curve: e ? 3 : 5,
308
+ bevel: e ? 1 : 2,
309
+ radial: e ? 8 : 14
310
+ }, n = ae(e), r = E.map((e) => new s(e)), i = {
311
+ count: 10,
312
+ countLow: 6
313
+ };
314
+ return [
315
+ P("car", ne(t), n, r, {
316
+ mass: 3,
317
+ bounce: .35,
318
+ friction: .6,
319
+ drag: .04,
320
+ ...i
321
+ }),
322
+ P("car-muscle", re(t), n, r, {
323
+ mass: 3.4,
324
+ bounce: .3,
325
+ friction: .62,
326
+ drag: .04,
327
+ ...i
328
+ }),
329
+ P("car-racer", ie(t), n, r, {
330
+ mass: 2.6,
331
+ bounce: .4,
332
+ friction: .55,
333
+ drag: .05,
334
+ ...i
335
+ })
336
+ ];
337
+ }
338
+ // src/effects/avalanche/fx.js
339
+ var F = 22, I = 0, L = 1, R = 2, z = 3, B = 4, V = 5, H = 6, se = 7, U = 8, ce = 9, W = 10, G = 11, K = 12, le = 13, ue = 14, de = 15, fe = 16, pe = 17, me = 18, he = 19, ge = 20, q = 21, J = {
340
+ dust: new s("#e6d6b8"),
341
+ dustGrey: new s("#a39b90"),
342
+ smokeDark: new s("#3a3432"),
343
+ smoke: new s("#76706b"),
344
+ fireCore: new s("#fff3b0"),
345
+ fire: new s("#ffc23a"),
346
+ fireRed: new s("#e8471c"),
347
+ spark: new s("#fff6cf"),
348
+ ember: new s("#ff8a2a"),
349
+ glintWhite: new s("#fffbe8"),
350
+ gold: new s("#ffc53a"),
351
+ flash: new s("#ffe2a6")
352
+ }, _e = "\nuniform float uScale;\nattribute vec4 aColor;\nattribute float aSize;\nattribute float aRot;\nvarying vec4 vColor;\nvarying vec2 vRot;\nvoid main() {\n vec4 mv = modelViewMatrix * vec4(position, 1.0);\n gl_Position = projectionMatrix * mv;\n gl_PointSize = aColor.a > 0.003 ? min(aSize * uScale / max(-mv.z, 0.5), 1024.0) : 0.0;\n vColor = aColor;\n vRot = vec2(cos(aRot), sin(aRot));\n}\n", ve = "\nuniform sampler2D uMap;\nvarying vec4 vColor;\nvarying vec2 vRot;\nvoid main() {\n vec2 uv = gl_PointCoord - 0.5;\n uv = vec2(vRot.x * uv.x - vRot.y * uv.y, vRot.y * uv.x + vRot.x * uv.y) + 0.5;\n float a = texture2D(uMap, uv).a * vColor.a;\n if (a < 0.004) discard;\n gl_FragColor = vec4(vColor.rgb, a);\n #include <encodings_fragment>\n}\n", Y = (e, t) => e + Math.random() * (t - e), X = (e) => Number.isFinite(e) ? Math.min(2.5, Math.max(.2, e)) : 1;
353
+ function ye(e) {
354
+ let t = document.createElement("canvas");
355
+ return t.width = e, t.height = e, {
356
+ canvas: t,
357
+ ctx: t.getContext("2d")
358
+ };
359
+ }
360
+ function be(e = 64) {
361
+ let { canvas: t, ctx: n } = ye(e), r = e / 2, i = n.createRadialGradient(r, r, 0, r, r, r);
362
+ return i.addColorStop(0, "rgba(255,255,255,1)"), i.addColorStop(.35, "rgba(255,255,255,.6)"), i.addColorStop(1, "rgba(255,255,255,0)"), n.fillStyle = i, n.fillRect(0, 0, e, e), new a(t);
363
+ }
364
+ function xe(e = 64) {
365
+ let { canvas: t, ctx: n } = ye(e), r = e / 2, i = 11, o = () => (i = i * 16807 % 2147483647, i / 2147483647);
366
+ for (let t = 0; t < 7; t += 1) {
367
+ let t = o() * Math.PI * 2, i = o() * r * .3, a = r + Math.cos(t) * i, s = r + Math.sin(t) * i, c = r * (.45 + o() * .22), l = n.createRadialGradient(a, s, 0, a, s, c);
368
+ l.addColorStop(0, "rgba(255,255,255,.55)"), l.addColorStop(.6, "rgba(255,255,255,.25)"), l.addColorStop(1, "rgba(255,255,255,0)"), n.fillStyle = l, n.fillRect(0, 0, e, e);
369
+ }
370
+ return new a(t);
371
+ }
372
+ function Se(e = 64) {
373
+ let { canvas: t, ctx: n } = ye(e), r = e / 2;
374
+ n.globalCompositeOperation = "lighter";
375
+ let i = n.createRadialGradient(r, r, 0, r, r, r * .42);
376
+ i.addColorStop(0, "rgba(255,255,255,1)"), i.addColorStop(.3, "rgba(255,255,255,.55)"), i.addColorStop(1, "rgba(255,255,255,0)"), n.fillStyle = i, n.fillRect(0, 0, e, e);
377
+ let o = (e, t, i) => {
378
+ n.save(), n.translate(r, r), n.rotate(e);
379
+ let a = n.createLinearGradient(-t, 0, t, 0);
380
+ a.addColorStop(0, "rgba(255,255,255,0)"), a.addColorStop(.5, "rgba(255,255,255,1)"), a.addColorStop(1, "rgba(255,255,255,0)"), n.fillStyle = a, n.beginPath(), n.moveTo(-t, 0), n.lineTo(0, -i), n.lineTo(t, 0), n.lineTo(0, i), n.closePath(), n.fill(), n.restore();
381
+ };
382
+ return o(0, r * .94, e * .05), o(Math.PI / 2, r * .94, e * .05), o(Math.PI / 4, r * .5, e * .03), o(-Math.PI / 4, r * .5, e * .03), new a(t);
383
+ }
384
+ var Z = {
385
+ x: 0,
386
+ y: 0,
387
+ z: 0,
388
+ vx: 0,
389
+ vy: 0,
390
+ vz: 0,
391
+ life: 1,
392
+ delay: 0,
393
+ s0: 1,
394
+ s1: 1,
395
+ c0: J.dust,
396
+ c1: J.dust,
397
+ shade: 1,
398
+ alpha: 1,
399
+ drag: 0,
400
+ grav: 0,
401
+ hot: 0,
402
+ rot: 0,
403
+ spin: 0,
404
+ twinkle: 0
405
+ };
406
+ function Q(e, t, n) {
407
+ return Z.x = e, Z.y = t, Z.z = n, Z.vx = 0, Z.vy = 0, Z.vz = 0, Z.life = 1, Z.delay = 0, Z.s0 = 1, Z.s1 = 1, Z.shade = 1, Z.alpha = 1, Z.drag = 0, Z.grav = 0, Z.hot = 0, Z.rot = Math.random() * Math.PI * 2, Z.spin = 0, Z.twinkle = 0, Z;
408
+ }
409
+ function $(t, { map: n, additive: a, scale: o, renderOrder: s, fadeIn: c }) {
410
+ let u = new Float32Array(t * F), d = new Float32Array(t), f = new Float32Array(t * 3), p = new Float32Array(t * 4), m = new Float32Array(t), h = new Float32Array(t), y = new i(), b = (e, t) => new r(e, t).setUsage(l);
411
+ y.setAttribute("position", b(f, 3)), y.setAttribute("aColor", b(p, 4)), y.setAttribute("aSize", b(m, 1)), y.setAttribute("aRot", b(h, 1)), y.setDrawRange(0, 0);
412
+ let x = new v({
413
+ uniforms: {
414
+ uScale: o,
415
+ uMap: { value: n }
416
+ },
417
+ vertexShader: _e,
418
+ fragmentShader: ve,
419
+ transparent: !0,
420
+ depthWrite: !1,
421
+ blending: a ? e : g
422
+ }), S = new _(y, x);
423
+ S.frustumCulled = !1, S.visible = !1, S.renderOrder = s;
424
+ let C = [
425
+ y.attributes.position,
426
+ y.attributes.aColor,
427
+ y.attributes.aSize,
428
+ y.attributes.aRot
429
+ ], w = C.map((e) => e.itemSize), T = 0, E = 0;
430
+ return {
431
+ points: S,
432
+ emit(e) {
433
+ let n;
434
+ T < t ? (n = T, T += 1) : (n = E, E = (E + 1) % t);
435
+ let r = n * F;
436
+ u[r + I] = e.x, u[r + L] = e.y, u[r + R] = e.z, u[r + z] = e.vx, u[r + B] = e.vy, u[r + V] = e.vz, u[r + H] = -e.delay, u[r + se] = e.life, u[r + U] = e.s0, u[r + ce] = e.s1, u[r + W] = e.c0.r * e.shade, u[r + G] = e.c0.g * e.shade, u[r + K] = e.c0.b * e.shade, u[r + le] = e.c1.r * e.shade, u[r + ue] = e.c1.g * e.shade, u[r + de] = e.c1.b * e.shade, u[r + fe] = e.alpha, u[r + pe] = e.drag, u[r + me] = e.grav, u[r + he] = e.hot, u[r + ge] = e.spin, u[r + q] = e.twinkle, d[n] = Math.random() * Math.PI * 2, h[n] = e.rot, p[n * 4 + 3] = 0;
437
+ },
438
+ update(e) {
439
+ let t = 0;
440
+ for (; t < T;) {
441
+ let n = t * F, r = u[n + H] + e, i = u[n + se];
442
+ if (r >= i) {
443
+ --T, t !== T && (u.copyWithin(n, T * F, T * F + F), d[t] = d[T], h[t] = h[T]);
444
+ continue;
445
+ }
446
+ u[n + H] = r;
447
+ let a = t * 3, o = t * 4;
448
+ if (r < 0) {
449
+ f[a] = u[n + I], f[a + 1] = u[n + L], f[a + 2] = u[n + R], p[o + 3] = 0, m[t] = 0, t += 1;
450
+ continue;
451
+ }
452
+ let s = Math.exp(-u[n + pe] * e);
453
+ u[n + z] *= s, u[n + B] = u[n + B] * s - u[n + me] * e, u[n + V] *= s, u[n + I] += u[n + z] * e, u[n + L] += u[n + B] * e, u[n + R] += u[n + V] * e, h[t] += u[n + ge] * e;
454
+ let l = r / i, g = l < .7 ? l / .7 : 1, _ = g * g * (3 - 2 * g), v = 1 - l, y = 1 + u[n + he] * v * v * v;
455
+ f[a] = u[n + I], f[a + 1] = u[n + L], f[a + 2] = u[n + R], p[o] = (u[n + W] + (u[n + le] - u[n + W]) * _) * y, p[o + 1] = (u[n + G] + (u[n + ue] - u[n + G]) * _) * y, p[o + 2] = (u[n + K] + (u[n + de] - u[n + K]) * _) * y;
456
+ let b = l < c ? l / c : 1, x = l > .5 ? v * 2 : 1, S = u[n + q] > 0 ? .35 + .65 * (.5 + .5 * Math.sin(r * u[n + q] + d[t])) : 1;
457
+ p[o + 3] = u[n + fe] * b * x * S, m[t] = u[n + U] + (u[n + ce] - u[n + U]) * (1 - v * v), t += 1;
458
+ }
459
+ if (y.setDrawRange(0, T), S.visible = T > 0, T > 0) for (let e = 0; e < C.length; e += 1) C[e].updateRange.offset = 0, C[e].updateRange.count = T * w[e], C[e].needsUpdate = !0;
460
+ },
461
+ dispose() {
462
+ y.dispose(), x.dispose();
463
+ }
464
+ };
465
+ }
466
+ function Ce(t, { lowPower: n = !1 } = {}) {
467
+ let r = n ? .5 : 1, i = (e, t, n = 1) => Math.max(n, Math.round(e * t * r)), a = be(64), o = xe(64), s = Se(64), c = { value: 600 }, l = new C(), u = (e, t, n) => {
468
+ e.getDrawingBufferSize(l), c.value = l.y * .5 * n.projectionMatrix.elements[5];
469
+ }, d = $(Math.round(360 * r), {
470
+ map: o,
471
+ additive: !1,
472
+ scale: c,
473
+ renderOrder: 20,
474
+ fadeIn: .12
475
+ }), p = $(Math.round(260 * r), {
476
+ map: a,
477
+ additive: !0,
478
+ scale: c,
479
+ renderOrder: 21,
480
+ fadeIn: .05
481
+ }), m = $(Math.round(240 * r), {
482
+ map: s,
483
+ additive: !0,
484
+ scale: c,
485
+ renderOrder: 22,
486
+ fadeIn: .08
487
+ }), h = [
488
+ d,
489
+ p,
490
+ m
491
+ ], g = new f();
492
+ g.name = "avalanche-fx", h.forEach((e) => {
493
+ e.points.onBeforeRender = u, g.add(e.points);
494
+ });
495
+ let _ = Array.from({ length: n ? 2 : 4 }, () => {
496
+ let t = new x(new S({
497
+ map: a,
498
+ color: J.flash,
499
+ blending: e,
500
+ transparent: !0,
501
+ depthWrite: !1
502
+ }));
503
+ return t.visible = !1, t.renderOrder = 23, t.frustumCulled = !1, g.add(t), {
504
+ sprite: t,
505
+ t: 0,
506
+ dur: .2,
507
+ size: 1
508
+ };
509
+ }), v = 0;
510
+ t.add(g);
511
+ let y = !1;
512
+ function b(e, t, n, r, i) {
513
+ let a = _[v];
514
+ v = (v + 1) % _.length, a.t = 0, a.dur = i, a.size = r, a.sprite.position.set(e, t, n), a.sprite.scale.setScalar(r * .55), a.sprite.material.opacity = 1, a.sprite.visible = !0;
515
+ }
516
+ function w(e, t, n, r = 1) {
517
+ if (y) return;
518
+ let a = X(r), o = .7 + .3 * a, s = i(18, a, 4);
519
+ for (let r = 0; r < s; r += 1) {
520
+ let i = r / s * Math.PI * 2 + Y(-.15, .15), a = Math.cos(i), c = Math.sin(i), l = .3 * o, u = Y(2.2, 3.8) * o, f = Q(e + a * l, t + Y(.05, .2), n + c * l * .6);
521
+ f.vx = a * u, f.vy = Y(.3, 1.1), f.vz = c * u * .6, f.life = Y(.45, .7), f.s0 = Y(.3, .5) * o, f.s1 = Y(1.1, 1.6) * o, f.c0 = J.dust, f.c1 = J.dustGrey, f.shade = Y(.88, 1.06), f.alpha = Y(.45, .6), f.drag = 3.6, f.grav = -.6, f.spin = Y(-1.5, 1.5), d.emit(f);
522
+ }
523
+ let c = i(5, a, 1);
524
+ for (let r = 0; r < c; r += 1) {
525
+ let r = Q(e + Y(-.35, .35) * o, t + .15, n + Y(-.2, .2));
526
+ r.vx = Y(-.5, .5), r.vy = Y(1, 1.8) * o, r.vz = Y(-.3, .3), r.life = Y(.5, .65), r.s0 = .5 * o, r.s1 = Y(1.3, 1.8) * o, r.c0 = J.dust, r.c1 = J.dustGrey, r.shade = Y(.9, 1.04), r.alpha = .42, r.drag = 2.4, r.grav = -.4, r.spin = Y(-1, 1), d.emit(r);
527
+ }
528
+ }
529
+ function T(e, t, n, r = 1) {
530
+ if (y) return;
531
+ let a = X(r), o = i(10, a, 2);
532
+ for (let r = 0; r < o; r += 1) {
533
+ let r = Q(e + Y(-.3, .3), t + Y(-.2, .3), n + Y(-.2, .3)), i = Math.random() * Math.PI * 2, o = Y(1.5, 3.5) * (.6 + .4 * a);
534
+ r.vx = Math.cos(i) * o, r.vy = Math.sin(i) * o * .8 + 1.2, r.vz = Y(-1, 1) * o * .5, r.life = Y(.35, .6), r.delay = Y(0, .08), r.s0 = Y(.35, .6), r.s1 = .08, r.c0 = J.glintWhite, r.c1 = J.gold, r.alpha = 1, r.hot = .4, r.drag = 2.6, r.grav = 2.5, r.spin = Y(-6, 6), r.twinkle = Y(24, 40), m.emit(r);
535
+ }
536
+ let s = Q(e, t + .1, n + .2);
537
+ s.life = .28, s.s0 = .9 * (.7 + .3 * a), s.s1 = .25, s.c0 = J.glintWhite, s.c1 = J.gold, s.alpha = 1, s.rot = 0, s.spin = 3, m.emit(s);
538
+ }
539
+ function E(e, t, n, r = 1) {
540
+ if (y) return;
541
+ let a = X(r);
542
+ b(e, t + .5 * a, n + .4, 3.4 * a, .2);
543
+ let o = i(26, a, 6);
544
+ for (let r = 0; r < o; r += 1) {
545
+ let r = Math.random() * Math.PI * 2, i = Math.acos(Math.random() * .9), o = Y(2.5, 6) * a, s = Q(e + Y(-.3, .3), t + .3, n + Y(-.3, .3));
546
+ s.vx = Math.cos(r) * Math.sin(i) * o, s.vy = Math.cos(i) * o * .9 + 1.5, s.vz = Math.sin(r) * Math.sin(i) * o * .6, s.life = Y(.35, .6), s.s0 = Y(.5, .75) * a, s.s1 = Y(1.2, 1.6) * a, s.c0 = Math.random() < .3 ? J.fireCore : J.fire, s.c1 = J.fireRed, s.alpha = .9, s.drag = 4, s.grav = -1, s.hot = 1.4, s.spin = Y(-2, 2), p.emit(s);
547
+ }
548
+ let s = i(12, a, 3);
549
+ for (let r = 0; r < s; r += 1) {
550
+ let r = Math.random() * Math.PI * 2, i = Y(6, 11) * a, o = Q(e, t + .4, n);
551
+ o.vx = Math.cos(r) * i * .7, o.vy = Y(4, 9) * a, o.vz = Math.sin(r) * i * .4, o.life = Y(.4, .7), o.s0 = .2, o.s1 = .06, o.c0 = J.spark, o.c1 = J.ember, o.alpha = 1, o.drag = 1, o.grav = 14, o.hot = 1, p.emit(o);
552
+ }
553
+ let c = i(14, a, 4);
554
+ for (let r = 0; r < c; r += 1) {
555
+ let r = Q(e + Y(-.6, .6) * a, t + Y(.3, .9) * a, n + Y(-.4, .4));
556
+ r.vx = Y(-1, 1) * a, r.vy = Y(1.6, 3) * a, r.vz = Y(-.5, .5), r.life = Y(.75, 1), r.delay = Y(.02, .12), r.s0 = Y(.6, .8) * a, r.s1 = Y(1.9, 2.5) * a, r.c0 = J.smokeDark, r.c1 = J.smoke, r.shade = Y(.85, 1.1), r.alpha = Y(.55, .7), r.drag = 1.3, r.grav = -.5, r.spin = Y(-1.2, 1.2), d.emit(r);
557
+ }
558
+ }
559
+ function D(e) {
560
+ if (y) return;
561
+ let t = Math.min(Math.max(e || 0, 0), .1);
562
+ for (let e = 0; e < h.length; e += 1) h[e].update(t);
563
+ for (let e = 0; e < _.length; e += 1) {
564
+ let n = _[e];
565
+ if (!n.sprite.visible) continue;
566
+ n.t += t;
567
+ let r = n.t / n.dur;
568
+ r >= 1 ? n.sprite.visible = !1 : (n.sprite.material.opacity = (1 - r) * (1 - r), n.sprite.scale.setScalar(n.size * (.55 + .65 * r)));
569
+ }
570
+ }
571
+ function ee() {
572
+ y || (y = !0, t.remove(g), h.forEach((e) => e.dispose()), _.forEach(({ sprite: e }) => e.material.dispose()), g.clear(), a.dispose(), o.dispose(), s.dispose());
573
+ }
574
+ return {
575
+ puff: w,
576
+ sparkle: T,
577
+ blast: E,
578
+ update: D,
579
+ dispose: ee
580
+ };
581
+ }
582
+ export { oe as n, Ce as t };
583
+
584
+ //# sourceMappingURL=fx-UZwhOmdl.js.map