genshin-interface 4.2.0 → 4.3.1
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.
- package/README.md +1 -1
- package/dist/constants-Bt7f1_FX.d.ts +52 -0
- package/dist/constants.d.ts +2 -0
- package/dist/constants.js +72 -0
- package/dist/index.d.ts +1390 -0
- package/dist/index.js +3302 -0
- package/dist/save-1cODLLb1.d.ts +24 -0
- package/dist/save-B6F3omOa.js +41 -0
- package/dist/save.d.ts +2 -0
- package/dist/save.js +1 -0
- package/dist/style.css +4067 -0
- package/dist/styles/artifactPicker.css +12 -0
- package/dist/styles/blessingWorship.css +50 -0
- package/dist/styles/confirmDialog.css +11 -0
- package/dist/styles/craftingShop.css +21 -0
- package/dist/styles/partyReputation.css +24 -0
- package/dist/styles/weaponStars.css +16 -0
- package/dist/styles/wishOverlay.css +38 -0
- package/package.json +7 -7
package/dist/index.js
ADDED
|
@@ -0,0 +1,3302 @@
|
|
|
1
|
+
import { ASCENSION_PHASE_COUNT, CHECK_MARK_PATH, CONSTELLATION_NODE_PLACES, COOKING_ARC_CENTRE_X, COOKING_ARC_CENTRE_Y, COOKING_ARC_RADIUS_X, COOKING_ARC_RADIUS_Y, FIXTURE_VARIANT_SEPARATOR, GAME_CANVAS_INSET, GAME_CANVAS_RECT, GAME_CANVAS_UNIT, GAME_CREAM, GAME_CURSOR, GAME_FONT_FAMILY, GAME_GOLD, GAME_INK, GAME_REPLY_HOVER, GAME_REPLY_HOVER_INK, GAME_REPLY_REST, GAME_ROW_HOVER, GAME_ROW_PRESS, GAME_SMOOTHSTEP_EASING, GAME_UNIT, GAME_WHITE, INTERACTION_HOVER_MS, INTERACTION_KEY_LABEL, INTERACTION_PILL_REST_MS, INTERACTION_PRESS_MS, INTERACTION_REST_MS, MOBILE_INTERFACE_SCALE, ORNAMENT_END_PATH, ORNAMENT_MIDDLE_PATH, SERVER_MARK_DIAMOND_PATH, SERVER_MARK_TICK_PATH, SETTINGS_RING_CENTRE, SETTINGS_RING_RADIUS, SETTINGS_RING_WIDTH } from "./constants.js";
|
|
2
|
+
import { i as ItemCategory, n as BannerKinds, r as ItemCategories, t as BannerKind } from "./save-B6F3omOa.js";
|
|
3
|
+
import { Fragment, computed, createBlock, createCommentVNode, createElementBlock, createElementVNode, createTextVNode, createVNode, defineComponent, mergeModels, nextTick, normalizeClass, normalizeStyle, openBlock, ref, renderList, renderSlot, toDisplayString, unref, useCssVars, useModel, useTemplateRef, vModelSelect, vModelText, watch, withCtx, withDirectives, withModifiers } from "vue";
|
|
4
|
+
//#region \0/plugin-vue/export-helper
|
|
5
|
+
var export_helper_default = (sfc, props) => {
|
|
6
|
+
const target = sfc.__vccOpts || sfc;
|
|
7
|
+
for (const [key, val] of props) target[key] = val;
|
|
8
|
+
return target;
|
|
9
|
+
};
|
|
10
|
+
//#endregion
|
|
11
|
+
//#region src/components/GameButton/Index.vue
|
|
12
|
+
const _hoisted_1$40 = ["data-kind"];
|
|
13
|
+
const _hoisted_2$32 = {
|
|
14
|
+
key: 0,
|
|
15
|
+
class: "tip"
|
|
16
|
+
};
|
|
17
|
+
var Index_default$16 = /*#__PURE__*/ export_helper_default(/* @__PURE__ */ defineComponent({
|
|
18
|
+
__name: "Index",
|
|
19
|
+
props: {
|
|
20
|
+
kind: {},
|
|
21
|
+
tip: {}
|
|
22
|
+
},
|
|
23
|
+
setup(__props, { expose: __expose }) {
|
|
24
|
+
useCssVars((_ctx) => ({
|
|
25
|
+
"v8de8a9a0": restDuration,
|
|
26
|
+
"v4f7d0248": hoverDuration,
|
|
27
|
+
"v5ff883e5": unref(GAME_GOLD),
|
|
28
|
+
"c23e4506": unref(GAME_CREAM),
|
|
29
|
+
"v7defe8be": unref(GAME_INK),
|
|
30
|
+
"v78a9c41c": unref(GAME_ROW_HOVER),
|
|
31
|
+
"v77c60e0e": unref(GAME_ROW_PRESS),
|
|
32
|
+
"v7a0541ee": pillRestDuration,
|
|
33
|
+
"v307a3362": pressDuration,
|
|
34
|
+
"v0673242b": unref(GAME_SMOOTHSTEP_EASING),
|
|
35
|
+
"v40afb3ee": unref(GAME_REPLY_REST),
|
|
36
|
+
"v5683177c": unref(GAME_REPLY_HOVER),
|
|
37
|
+
"a79a636e": unref(GAME_REPLY_HOVER_INK)
|
|
38
|
+
}));
|
|
39
|
+
const button = useTemplateRef("button");
|
|
40
|
+
const hoverDuration = `50ms`;
|
|
41
|
+
const restDuration = `100ms`;
|
|
42
|
+
const pillRestDuration = `200ms`;
|
|
43
|
+
const pressDuration = `167ms`;
|
|
44
|
+
__expose({ focus: () => button.value?.focus() });
|
|
45
|
+
return (_ctx, _cache) => {
|
|
46
|
+
return openBlock(), createElementBlock(Fragment, null, [createCommentVNode(" One of the game's buttons, placed by its parent, in its kind's look for each state: at rest, hovered (or focused\n From the keyboard, which the game draws as a hover), pressed and disabled. The look is the button's own, and its content\n Takes the colour it sets "), createElementVNode("button", {
|
|
47
|
+
ref_key: "button",
|
|
48
|
+
ref: button,
|
|
49
|
+
class: "game-button",
|
|
50
|
+
"data-kind": __props.kind,
|
|
51
|
+
type: "button"
|
|
52
|
+
}, [renderSlot(_ctx.$slots, "default"), __props.tip ? (openBlock(), createElementBlock("span", _hoisted_2$32, toDisplayString(__props.tip), 1)) : createCommentVNode("v-if", true)], 8, _hoisted_1$40)], 2112);
|
|
53
|
+
};
|
|
54
|
+
}
|
|
55
|
+
}), [["__scopeId", "data-v-cab29bfa"]]);
|
|
56
|
+
//#endregion
|
|
57
|
+
//#region src/components/PickerShell/Index.vue
|
|
58
|
+
const _hoisted_1$39 = ["aria-label"];
|
|
59
|
+
const _hoisted_2$31 = { class: "title" };
|
|
60
|
+
var Index_default$24 = /*#__PURE__*/ export_helper_default(/* @__PURE__ */ defineComponent({
|
|
61
|
+
__name: "Index",
|
|
62
|
+
props: { title: {} },
|
|
63
|
+
setup(__props) {
|
|
64
|
+
return (_ctx, _cache) => {
|
|
65
|
+
return openBlock(), createElementBlock("div", {
|
|
66
|
+
class: "picker-shell",
|
|
67
|
+
role: "dialog",
|
|
68
|
+
"aria-modal": "true",
|
|
69
|
+
"aria-label": __props.title
|
|
70
|
+
}, [createElementVNode("p", _hoisted_2$31, toDisplayString(__props.title), 1), renderSlot(_ctx.$slots, "default", {}, void 0, true)], 8, _hoisted_1$39);
|
|
71
|
+
};
|
|
72
|
+
}
|
|
73
|
+
}), [["__scopeId", "data-v-6f193621"]]);
|
|
74
|
+
//#endregion
|
|
75
|
+
//#region src/models/GameButtonKind.ts
|
|
76
|
+
let GameButtonKind = /* @__PURE__ */ function(GameButtonKind) {
|
|
77
|
+
GameButtonKind["Disc"] = "Disc";
|
|
78
|
+
GameButtonKind["Pill"] = "Pill";
|
|
79
|
+
GameButtonKind["Plain"] = "Plain";
|
|
80
|
+
GameButtonKind["Reply"] = "Reply";
|
|
81
|
+
GameButtonKind["Row"] = "Row";
|
|
82
|
+
return GameButtonKind;
|
|
83
|
+
}({});
|
|
84
|
+
//#endregion
|
|
85
|
+
//#region src/components/ArtifactEnhancePicker/Index.vue
|
|
86
|
+
const _hoisted_1$38 = { class: "summary" };
|
|
87
|
+
const _hoisted_2$30 = { class: "level" };
|
|
88
|
+
const _hoisted_3$28 = { class: "mora" };
|
|
89
|
+
const _hoisted_4$24 = {
|
|
90
|
+
key: 0,
|
|
91
|
+
class: "notice"
|
|
92
|
+
};
|
|
93
|
+
const _hoisted_5$22 = { class: "fodders" };
|
|
94
|
+
const _hoisted_6$21 = [
|
|
95
|
+
"aria-pressed",
|
|
96
|
+
"data-rarity",
|
|
97
|
+
"onClick"
|
|
98
|
+
];
|
|
99
|
+
const _hoisted_7$21 = { class: "name" };
|
|
100
|
+
const _hoisted_8$16 = { class: "caption" };
|
|
101
|
+
const _hoisted_9$14 = { class: "materials" };
|
|
102
|
+
const _hoisted_10$13 = { class: "name" };
|
|
103
|
+
const _hoisted_11$9 = { class: "count" };
|
|
104
|
+
const _hoisted_12$9 = { class: "actions" };
|
|
105
|
+
var Index_default = /*#__PURE__*/ export_helper_default(/* @__PURE__ */ defineComponent({
|
|
106
|
+
__name: "Index",
|
|
107
|
+
props: {
|
|
108
|
+
autoAddLabel: {},
|
|
109
|
+
cancelLabel: {},
|
|
110
|
+
confirmLabel: {},
|
|
111
|
+
fodders: {},
|
|
112
|
+
isConfirmDisabled: { type: Boolean },
|
|
113
|
+
levelLabel: {},
|
|
114
|
+
materials: {},
|
|
115
|
+
moraCost: {},
|
|
116
|
+
moraLabel: {},
|
|
117
|
+
notice: {},
|
|
118
|
+
title: {}
|
|
119
|
+
},
|
|
120
|
+
emits: [
|
|
121
|
+
"autoAdd",
|
|
122
|
+
"cancel",
|
|
123
|
+
"confirm",
|
|
124
|
+
"fodder",
|
|
125
|
+
"material"
|
|
126
|
+
],
|
|
127
|
+
setup(__props, { emit: __emit }) {
|
|
128
|
+
const emit = __emit;
|
|
129
|
+
return (_ctx, _cache) => {
|
|
130
|
+
return openBlock(), createBlock(Index_default$24, {
|
|
131
|
+
class: "enhance-picker",
|
|
132
|
+
title: __props.title
|
|
133
|
+
}, {
|
|
134
|
+
default: withCtx(() => [
|
|
135
|
+
createElementVNode("p", _hoisted_1$38, [createElementVNode("span", _hoisted_2$30, toDisplayString(__props.levelLabel), 1), createElementVNode("span", _hoisted_3$28, toDisplayString(__props.moraLabel) + " " + toDisplayString(__props.moraCost), 1)]),
|
|
136
|
+
__props.notice ? (openBlock(), createElementBlock("p", _hoisted_4$24, toDisplayString(__props.notice), 1)) : createCommentVNode("v-if", true),
|
|
137
|
+
createElementVNode("ul", _hoisted_5$22, [(openBlock(true), createElementBlock(Fragment, null, renderList(__props.fodders, ({ caption, id, isSelected, name, rarity }) => {
|
|
138
|
+
return openBlock(), createElementBlock("li", { key: id }, [createElementVNode("button", {
|
|
139
|
+
class: "option",
|
|
140
|
+
"aria-pressed": isSelected,
|
|
141
|
+
"data-rarity": rarity,
|
|
142
|
+
type: "button",
|
|
143
|
+
onClick: ($event) => emit("fodder", id)
|
|
144
|
+
}, [createElementVNode("span", _hoisted_7$21, toDisplayString(name), 1), createElementVNode("span", _hoisted_8$16, toDisplayString(caption), 1)], 8, _hoisted_6$21)]);
|
|
145
|
+
}), 128))]),
|
|
146
|
+
createElementVNode("ul", _hoisted_9$14, [(openBlock(true), createElementBlock(Fragment, null, renderList(__props.materials, ({ count, id, name, selectedCount }) => {
|
|
147
|
+
return openBlock(), createElementBlock("li", {
|
|
148
|
+
key: id,
|
|
149
|
+
class: "material"
|
|
150
|
+
}, [
|
|
151
|
+
createElementVNode("span", _hoisted_10$13, toDisplayString(name), 1),
|
|
152
|
+
createElementVNode("span", _hoisted_11$9, toDisplayString(selectedCount) + "/" + toDisplayString(count), 1),
|
|
153
|
+
createVNode(Index_default$16, {
|
|
154
|
+
disabled: selectedCount <= 0,
|
|
155
|
+
kind: unref(GameButtonKind).Pill,
|
|
156
|
+
onClick: ($event) => emit("material", id, -1)
|
|
157
|
+
}, {
|
|
158
|
+
default: withCtx(() => [..._cache[3] || (_cache[3] = [createTextVNode(" - ", -1)])]),
|
|
159
|
+
_: 1
|
|
160
|
+
}, 8, [
|
|
161
|
+
"disabled",
|
|
162
|
+
"kind",
|
|
163
|
+
"onClick"
|
|
164
|
+
]),
|
|
165
|
+
createVNode(Index_default$16, {
|
|
166
|
+
disabled: selectedCount >= count,
|
|
167
|
+
kind: unref(GameButtonKind).Pill,
|
|
168
|
+
onClick: ($event) => emit("material", id, 1)
|
|
169
|
+
}, {
|
|
170
|
+
default: withCtx(() => [..._cache[4] || (_cache[4] = [createTextVNode(" + ", -1)])]),
|
|
171
|
+
_: 1
|
|
172
|
+
}, 8, [
|
|
173
|
+
"disabled",
|
|
174
|
+
"kind",
|
|
175
|
+
"onClick"
|
|
176
|
+
])
|
|
177
|
+
]);
|
|
178
|
+
}), 128))]),
|
|
179
|
+
createElementVNode("div", _hoisted_12$9, [
|
|
180
|
+
createVNode(Index_default$16, {
|
|
181
|
+
kind: unref(GameButtonKind).Pill,
|
|
182
|
+
onClick: _cache[0] || (_cache[0] = ($event) => emit("autoAdd"))
|
|
183
|
+
}, {
|
|
184
|
+
default: withCtx(() => [createTextVNode(toDisplayString(__props.autoAddLabel), 1)]),
|
|
185
|
+
_: 1
|
|
186
|
+
}, 8, ["kind"]),
|
|
187
|
+
createVNode(Index_default$16, {
|
|
188
|
+
kind: unref(GameButtonKind).Pill,
|
|
189
|
+
onClick: _cache[1] || (_cache[1] = ($event) => emit("cancel"))
|
|
190
|
+
}, {
|
|
191
|
+
default: withCtx(() => [createTextVNode(toDisplayString(__props.cancelLabel), 1)]),
|
|
192
|
+
_: 1
|
|
193
|
+
}, 8, ["kind"]),
|
|
194
|
+
createVNode(Index_default$16, {
|
|
195
|
+
disabled: __props.isConfirmDisabled,
|
|
196
|
+
kind: unref(GameButtonKind).Pill,
|
|
197
|
+
onClick: _cache[2] || (_cache[2] = ($event) => emit("confirm"))
|
|
198
|
+
}, {
|
|
199
|
+
default: withCtx(() => [createTextVNode(toDisplayString(__props.confirmLabel), 1)]),
|
|
200
|
+
_: 1
|
|
201
|
+
}, 8, ["disabled", "kind"])
|
|
202
|
+
])
|
|
203
|
+
]),
|
|
204
|
+
_: 1
|
|
205
|
+
}, 8, ["title"]);
|
|
206
|
+
};
|
|
207
|
+
}
|
|
208
|
+
}), [["__scopeId", "data-v-7c672712"]]);
|
|
209
|
+
//#endregion
|
|
210
|
+
//#region src/components/ArtifactPicker/Index.vue
|
|
211
|
+
const _hoisted_1$37 = { class: "options" };
|
|
212
|
+
const _hoisted_2$29 = ["data-rarity", "onClick"];
|
|
213
|
+
const _hoisted_3$27 = { class: "name" };
|
|
214
|
+
const _hoisted_4$23 = { class: "caption" };
|
|
215
|
+
var Index_default$1 = /*#__PURE__*/ export_helper_default(/* @__PURE__ */ defineComponent({
|
|
216
|
+
__name: "Index",
|
|
217
|
+
props: {
|
|
218
|
+
closeLabel: {},
|
|
219
|
+
options: {},
|
|
220
|
+
title: {}
|
|
221
|
+
},
|
|
222
|
+
emits: ["choose", "close"],
|
|
223
|
+
setup(__props, { emit: __emit }) {
|
|
224
|
+
const emit = __emit;
|
|
225
|
+
return (_ctx, _cache) => {
|
|
226
|
+
return openBlock(), createBlock(Index_default$24, {
|
|
227
|
+
class: "artifact-picker",
|
|
228
|
+
title: __props.title
|
|
229
|
+
}, {
|
|
230
|
+
default: withCtx(() => [createElementVNode("ul", _hoisted_1$37, [(openBlock(true), createElementBlock(Fragment, null, renderList(__props.options, ({ caption, id, name, rarity }) => {
|
|
231
|
+
return openBlock(), createElementBlock("li", { key: id }, [createElementVNode("button", {
|
|
232
|
+
class: "option",
|
|
233
|
+
"data-rarity": rarity,
|
|
234
|
+
type: "button",
|
|
235
|
+
onClick: ($event) => emit("choose", id)
|
|
236
|
+
}, [createElementVNode("span", _hoisted_3$27, toDisplayString(name), 1), createElementVNode("span", _hoisted_4$23, toDisplayString(caption), 1)], 8, _hoisted_2$29)]);
|
|
237
|
+
}), 128))]), createVNode(Index_default$16, {
|
|
238
|
+
class: "close",
|
|
239
|
+
kind: unref(GameButtonKind).Pill,
|
|
240
|
+
onClick: _cache[0] || (_cache[0] = ($event) => emit("close"))
|
|
241
|
+
}, {
|
|
242
|
+
default: withCtx(() => [createTextVNode(toDisplayString(__props.closeLabel), 1)]),
|
|
243
|
+
_: 1
|
|
244
|
+
}, 8, ["kind"])]),
|
|
245
|
+
_: 1
|
|
246
|
+
}, 8, ["title"]);
|
|
247
|
+
};
|
|
248
|
+
}
|
|
249
|
+
}), [["__scopeId", "data-v-bf242b3e"]]);
|
|
250
|
+
//#endregion
|
|
251
|
+
//#region src/components/BlessingScreen/Index.vue
|
|
252
|
+
const _hoisted_1$36 = { class: "blessing-screen" };
|
|
253
|
+
const _hoisted_2$28 = { class: "title" };
|
|
254
|
+
const _hoisted_3$26 = { class: "pool" };
|
|
255
|
+
const _hoisted_4$22 = { class: "members" };
|
|
256
|
+
const _hoisted_5$21 = ["onClick"];
|
|
257
|
+
const _hoisted_6$20 = { class: "name" };
|
|
258
|
+
const _hoisted_7$20 = { class: "health" };
|
|
259
|
+
var Index_default$2 = /*#__PURE__*/ export_helper_default(/* @__PURE__ */ defineComponent({
|
|
260
|
+
__name: "Index",
|
|
261
|
+
props: {
|
|
262
|
+
members: {},
|
|
263
|
+
poolAmount: {},
|
|
264
|
+
poolMaximum: {},
|
|
265
|
+
title: {},
|
|
266
|
+
worshipTitle: {}
|
|
267
|
+
},
|
|
268
|
+
emits: [
|
|
269
|
+
"close",
|
|
270
|
+
"heal",
|
|
271
|
+
"worship"
|
|
272
|
+
],
|
|
273
|
+
setup(__props, { emit: __emit }) {
|
|
274
|
+
const emit = __emit;
|
|
275
|
+
return (_ctx, _cache) => {
|
|
276
|
+
return openBlock(), createElementBlock(Fragment, null, [createCommentVNode(" The layout is provisional until the recording of the Blessing screen shows it "), createElementVNode("div", _hoisted_1$36, [
|
|
277
|
+
createElementVNode("h1", _hoisted_2$28, toDisplayString(__props.title), 1),
|
|
278
|
+
createElementVNode("button", {
|
|
279
|
+
class: "close",
|
|
280
|
+
type: "button",
|
|
281
|
+
onClick: _cache[0] || (_cache[0] = ($event) => emit("close"))
|
|
282
|
+
}, "×"),
|
|
283
|
+
createElementVNode("button", {
|
|
284
|
+
class: "worship",
|
|
285
|
+
type: "button",
|
|
286
|
+
onClick: _cache[1] || (_cache[1] = ($event) => emit("worship"))
|
|
287
|
+
}, toDisplayString(__props.worshipTitle), 1),
|
|
288
|
+
createElementVNode("p", _hoisted_3$26, toDisplayString(Math.floor(__props.poolAmount)) + " / " + toDisplayString(__props.poolMaximum), 1),
|
|
289
|
+
createElementVNode("ul", _hoisted_4$22, [(openBlock(true), createElementBlock(Fragment, null, renderList(__props.members, ({ healthShare, id, name }) => {
|
|
290
|
+
return openBlock(), createElementBlock("li", { key: id }, [createElementVNode("button", {
|
|
291
|
+
type: "button",
|
|
292
|
+
onClick: ($event) => emit("heal", id)
|
|
293
|
+
}, [createElementVNode("span", _hoisted_6$20, toDisplayString(name), 1), createElementVNode("span", _hoisted_7$20, toDisplayString(Math.round(healthShare * 100)) + "%", 1)], 8, _hoisted_5$21)]);
|
|
294
|
+
}), 128))])
|
|
295
|
+
])], 2112);
|
|
296
|
+
};
|
|
297
|
+
}
|
|
298
|
+
}), [["__scopeId", "data-v-4c1e529d"]]);
|
|
299
|
+
//#endregion
|
|
300
|
+
//#region src/models/CharacterMenuTab.ts
|
|
301
|
+
let CharacterMenuTab = /* @__PURE__ */ function(CharacterMenuTab) {
|
|
302
|
+
CharacterMenuTab["Artifacts"] = "Artifacts";
|
|
303
|
+
CharacterMenuTab["Attributes"] = "Attributes";
|
|
304
|
+
CharacterMenuTab["Constellation"] = "Constellation";
|
|
305
|
+
CharacterMenuTab["Profile"] = "Profile";
|
|
306
|
+
CharacterMenuTab["Talents"] = "Talents";
|
|
307
|
+
CharacterMenuTab["Weapons"] = "Weapons";
|
|
308
|
+
return CharacterMenuTab;
|
|
309
|
+
}({});
|
|
310
|
+
const CharacterMenuTabs = [
|
|
311
|
+
"Attributes",
|
|
312
|
+
"Weapons",
|
|
313
|
+
"Artifacts",
|
|
314
|
+
"Constellation",
|
|
315
|
+
"Talents",
|
|
316
|
+
"Profile"
|
|
317
|
+
];
|
|
318
|
+
//#endregion
|
|
319
|
+
//#region src/components/CharacterMenu/Index.vue
|
|
320
|
+
const _hoisted_1$35 = ["data-tab"];
|
|
321
|
+
const _hoisted_2$27 = { class: "characters" };
|
|
322
|
+
const _hoisted_3$25 = ["aria-pressed", "onClick"];
|
|
323
|
+
const _hoisted_4$21 = { class: "breadcrumb" };
|
|
324
|
+
const _hoisted_5$20 = {
|
|
325
|
+
key: 0,
|
|
326
|
+
class: "element",
|
|
327
|
+
viewBox: "0 0 1600 1600",
|
|
328
|
+
"aria-hidden": "true"
|
|
329
|
+
};
|
|
330
|
+
const _hoisted_6$19 = ["d"];
|
|
331
|
+
const _hoisted_7$19 = { class: "tabs" };
|
|
332
|
+
const _hoisted_8$15 = ["aria-pressed", "onClick"];
|
|
333
|
+
const _hoisted_9$13 = ["aria-label"];
|
|
334
|
+
const _hoisted_10$12 = ["aria-label", "onClick"];
|
|
335
|
+
var Index_default$3 = /*#__PURE__*/ export_helper_default(/* @__PURE__ */ defineComponent({
|
|
336
|
+
__name: "Index",
|
|
337
|
+
props: /*@__PURE__*/ mergeModels({
|
|
338
|
+
characters: {},
|
|
339
|
+
elementMarkPath: {},
|
|
340
|
+
tabLabels: {}
|
|
341
|
+
}, {
|
|
342
|
+
"characterId": { required: true },
|
|
343
|
+
"characterIdModifiers": {},
|
|
344
|
+
"tab": { required: true },
|
|
345
|
+
"tabModifiers": {}
|
|
346
|
+
}),
|
|
347
|
+
emits: ["update:characterId", "update:tab"],
|
|
348
|
+
setup(__props) {
|
|
349
|
+
const characterId = useModel(__props, "characterId");
|
|
350
|
+
const tab = useModel(__props, "tab");
|
|
351
|
+
const characterName = computed(() => __props.characters.find(({ id }) => id === characterId.value)?.name ?? "");
|
|
352
|
+
const steps = computed(() => {
|
|
353
|
+
const index = __props.characters.findIndex(({ id }) => id === characterId.value);
|
|
354
|
+
const getStep = (step) => __props.characters[(index + step + __props.characters.length) % __props.characters.length];
|
|
355
|
+
return [{
|
|
356
|
+
character: getStep(-1),
|
|
357
|
+
className: "previous"
|
|
358
|
+
}, {
|
|
359
|
+
character: getStep(1),
|
|
360
|
+
className: "next"
|
|
361
|
+
}];
|
|
362
|
+
});
|
|
363
|
+
return (_ctx, _cache) => {
|
|
364
|
+
return openBlock(), createElementBlock(Fragment, null, [createCommentVNode(" The character screen's frame: the characters across the top with one chosen, its name at the top left, the tabs\n down the left with the open one lit, and the open tab's panel down the right "), createElementVNode("div", {
|
|
365
|
+
class: "character-menu",
|
|
366
|
+
"data-tab": tab.value
|
|
367
|
+
}, [
|
|
368
|
+
_cache[1] || (_cache[1] = createElementVNode("div", { class: "head" }, null, -1)),
|
|
369
|
+
createElementVNode("ul", _hoisted_2$27, [(openBlock(true), createElementBlock(Fragment, null, renderList(__props.characters, ({ id, name }) => {
|
|
370
|
+
return openBlock(), createElementBlock("li", { key: id }, [createElementVNode("button", {
|
|
371
|
+
class: "character",
|
|
372
|
+
"aria-pressed": id === characterId.value,
|
|
373
|
+
type: "button",
|
|
374
|
+
onClick: ($event) => characterId.value = id
|
|
375
|
+
}, toDisplayString(name), 9, _hoisted_3$25)]);
|
|
376
|
+
}), 128))]),
|
|
377
|
+
createElementVNode("p", _hoisted_4$21, toDisplayString(characterName.value), 1),
|
|
378
|
+
__props.elementMarkPath ? (openBlock(), createElementBlock("svg", _hoisted_5$20, [createElementVNode("path", { d: __props.elementMarkPath }, null, 8, _hoisted_6$19)])) : createCommentVNode("v-if", true),
|
|
379
|
+
createCommentVNode(" The keys stepping through the tabs, W up and S down, beside the first "),
|
|
380
|
+
_cache[2] || (_cache[2] = createElementVNode("div", {
|
|
381
|
+
class: "tab-keys",
|
|
382
|
+
"aria-hidden": "true"
|
|
383
|
+
}, [createElementVNode("kbd", { class: "key" }, "W"), createElementVNode("kbd", { class: "key" }, "S")], -1)),
|
|
384
|
+
createElementVNode("ul", _hoisted_7$19, [(openBlock(true), createElementBlock(Fragment, null, renderList(unref(CharacterMenuTabs), (menuTab) => {
|
|
385
|
+
return openBlock(), createElementBlock("li", { key: menuTab }, [createElementVNode("button", {
|
|
386
|
+
class: "tab",
|
|
387
|
+
"aria-pressed": menuTab === tab.value,
|
|
388
|
+
type: "button",
|
|
389
|
+
onClick: ($event) => tab.value = menuTab
|
|
390
|
+
}, toDisplayString(__props.tabLabels[menuTab]), 9, _hoisted_8$15)]);
|
|
391
|
+
}), 128))]),
|
|
392
|
+
createElementVNode("section", {
|
|
393
|
+
class: "panel",
|
|
394
|
+
"aria-label": __props.tabLabels[tab.value]
|
|
395
|
+
}, [renderSlot(_ctx.$slots, "default", {}, void 0, true)], 8, _hoisted_9$13),
|
|
396
|
+
__props.characters.length > 1 ? (openBlock(true), createElementBlock(Fragment, { key: 1 }, renderList(steps.value, ({ character, className }) => {
|
|
397
|
+
return openBlock(), createElementBlock("button", {
|
|
398
|
+
key: className,
|
|
399
|
+
class: normalizeClass(["step", className]),
|
|
400
|
+
"aria-label": character?.name,
|
|
401
|
+
type: "button",
|
|
402
|
+
onClick: ($event) => characterId.value = character?.id ?? characterId.value
|
|
403
|
+
}, [createCommentVNode(" The arrow's head and the diamond in its notch, in the reference's own pixels "), _cache[0] || (_cache[0] = createElementVNode("svg", {
|
|
404
|
+
viewBox: "0 0 43 55",
|
|
405
|
+
"aria-hidden": "true"
|
|
406
|
+
}, [
|
|
407
|
+
createElementVNode("path", {
|
|
408
|
+
class: "arrow",
|
|
409
|
+
d: "M31 0 L0 27.5 L31 55 L31 42 L16 27.5 L31 13 Z"
|
|
410
|
+
}),
|
|
411
|
+
createElementVNode("path", {
|
|
412
|
+
class: "mark",
|
|
413
|
+
d: "M31 16.5 L42 27.5 L31 38.5 L20 27.5 Z M31 22 L25.5 27.5 L31 33 L36.5 27.5 Z"
|
|
414
|
+
}),
|
|
415
|
+
createElementVNode("path", {
|
|
416
|
+
class: "mark",
|
|
417
|
+
d: "M31 25.5 L33 27.5 L31 29.5 L29 27.5 Z"
|
|
418
|
+
})
|
|
419
|
+
], -1))], 10, _hoisted_10$12);
|
|
420
|
+
}), 128)) : createCommentVNode("v-if", true)
|
|
421
|
+
], 8, _hoisted_1$35)], 2112);
|
|
422
|
+
};
|
|
423
|
+
}
|
|
424
|
+
}), [["__scopeId", "data-v-86092611"]]);
|
|
425
|
+
//#endregion
|
|
426
|
+
//#region src/components/CharacterMenuButtons/Index.vue
|
|
427
|
+
const _hoisted_1$34 = { class: "buttons" };
|
|
428
|
+
var Index_default$5 = /*#__PURE__*/ export_helper_default(/* @__PURE__ */ defineComponent({
|
|
429
|
+
__name: "Index",
|
|
430
|
+
setup(__props) {
|
|
431
|
+
return (_ctx, _cache) => {
|
|
432
|
+
return openBlock(), createElementBlock(Fragment, null, [createCommentVNode(" The two buttons beneath a character menu's panel, the game's pills, each the panel's half less the gap between them "), createElementVNode("div", _hoisted_1$34, [renderSlot(_ctx.$slots, "default", {}, () => [_cache[0] || (_cache[0] = createElementVNode("span", { class: "button" }, null, -1)), _cache[1] || (_cache[1] = createElementVNode("span", { class: "button" }, null, -1))], true)])], 2112);
|
|
433
|
+
};
|
|
434
|
+
}
|
|
435
|
+
}), [["__scopeId", "data-v-359aa329"]]);
|
|
436
|
+
//#endregion
|
|
437
|
+
//#region src/components/ToastNotice/Index.vue
|
|
438
|
+
const _sfc_main$34 = {};
|
|
439
|
+
const _hoisted_1$33 = {
|
|
440
|
+
class: "toast-notice",
|
|
441
|
+
role: "status"
|
|
442
|
+
};
|
|
443
|
+
const _hoisted_2$26 = { class: "mark" };
|
|
444
|
+
const _hoisted_3$24 = { class: "text" };
|
|
445
|
+
function _sfc_render$1(_ctx, _cache) {
|
|
446
|
+
return openBlock(), createElementBlock(Fragment, null, [createCommentVNode(" The game's notice card, dropped at the top of a screen: white with rounded corners, 107 units high and at least\n 537 across, a round mark at its left and its words in the game's near black. Measured from a 1440 high\n Recording of the welcome the login screen shows "), createElementVNode("div", _hoisted_1$33, [createElementVNode("span", _hoisted_2$26, [renderSlot(_ctx.$slots, "mark", {}, void 0, true)]), createElementVNode("p", _hoisted_3$24, [renderSlot(_ctx.$slots, "default", {}, void 0, true)])])], 2112);
|
|
447
|
+
}
|
|
448
|
+
var Index_default$33 = /*#__PURE__*/ export_helper_default(_sfc_main$34, [["render", _sfc_render$1], ["__scopeId", "data-v-a09dfb40"]]);
|
|
449
|
+
//#endregion
|
|
450
|
+
//#region src/components/CharacterMenuArtifacts/Index.vue
|
|
451
|
+
const _hoisted_1$32 = { class: "artifacts" };
|
|
452
|
+
const _hoisted_2$25 = { class: "slots" };
|
|
453
|
+
const _hoisted_3$23 = [
|
|
454
|
+
"aria-label",
|
|
455
|
+
"aria-pressed",
|
|
456
|
+
"onClick"
|
|
457
|
+
];
|
|
458
|
+
const _hoisted_4$20 = { class: "details" };
|
|
459
|
+
const _hoisted_5$19 = {
|
|
460
|
+
key: 1,
|
|
461
|
+
class: "stats"
|
|
462
|
+
};
|
|
463
|
+
const _hoisted_6$18 = { class: "stat" };
|
|
464
|
+
const _hoisted_7$18 = { class: "set-bonus" };
|
|
465
|
+
const _hoisted_8$14 = { class: "set-bonus-heading" };
|
|
466
|
+
const _hoisted_9$12 = {
|
|
467
|
+
key: 0,
|
|
468
|
+
class: "set-bonus-lines"
|
|
469
|
+
};
|
|
470
|
+
const _hoisted_10$11 = {
|
|
471
|
+
key: 1,
|
|
472
|
+
class: "set-bonus-lines"
|
|
473
|
+
};
|
|
474
|
+
var Index_default$4 = /*#__PURE__*/ export_helper_default(/* @__PURE__ */ defineComponent({
|
|
475
|
+
__name: "Index",
|
|
476
|
+
props: {
|
|
477
|
+
enhanceLabel: {},
|
|
478
|
+
equipDisabledSlots: {},
|
|
479
|
+
equipLabel: {},
|
|
480
|
+
lockLabel: {},
|
|
481
|
+
noSetBonusLabel: {},
|
|
482
|
+
notice: {},
|
|
483
|
+
setBonusHeading: {},
|
|
484
|
+
setBonusLines: {},
|
|
485
|
+
slotNames: {},
|
|
486
|
+
slotStats: {},
|
|
487
|
+
unequipLabel: {},
|
|
488
|
+
unlockLabel: {}
|
|
489
|
+
},
|
|
490
|
+
emits: [
|
|
491
|
+
"enhance",
|
|
492
|
+
"equip",
|
|
493
|
+
"lock",
|
|
494
|
+
"unequip"
|
|
495
|
+
],
|
|
496
|
+
setup(__props, { emit: __emit }) {
|
|
497
|
+
const emit = __emit;
|
|
498
|
+
const selectedIndex = ref(0);
|
|
499
|
+
const selectedStats = computed(() => __props.slotStats[selectedIndex.value]);
|
|
500
|
+
const isSelectedWorn = computed(() => selectedStats.value !== void 0);
|
|
501
|
+
return (_ctx, _cache) => {
|
|
502
|
+
return openBlock(), createElementBlock(Fragment, null, [createCommentVNode(" The Artifacts tab's panel: the five slots down its top, each a disc lit where the character wears an artifact and\n picked by a click, the picked slot's name in the details pill, the picked artifact's main and sub stats under it,\n the set bonus block below them, and the Enhance and Equip or Unequip buttons at its foot. The stats' place is\n provisional "), createElementVNode("div", _hoisted_1$32, [
|
|
503
|
+
__props.notice ? (openBlock(), createBlock(Index_default$33, {
|
|
504
|
+
key: 0,
|
|
505
|
+
class: "notice"
|
|
506
|
+
}, {
|
|
507
|
+
default: withCtx(() => [createTextVNode(toDisplayString(__props.notice), 1)]),
|
|
508
|
+
_: 1
|
|
509
|
+
})) : createCommentVNode("v-if", true),
|
|
510
|
+
createElementVNode("ul", _hoisted_2$25, [(openBlock(true), createElementBlock(Fragment, null, renderList(__props.slotStats, (stats, index) => {
|
|
511
|
+
return openBlock(), createElementBlock("li", { key: index }, [createElementVNode("button", {
|
|
512
|
+
class: normalizeClass(["slot", { worn: stats !== void 0 }]),
|
|
513
|
+
"aria-label": __props.slotNames[index],
|
|
514
|
+
"aria-pressed": index === selectedIndex.value,
|
|
515
|
+
type: "button",
|
|
516
|
+
onClick: ($event) => selectedIndex.value = index
|
|
517
|
+
}, null, 10, _hoisted_3$23)]);
|
|
518
|
+
}), 128))]),
|
|
519
|
+
createElementVNode("div", _hoisted_4$20, toDisplayString(__props.slotNames[selectedIndex.value]), 1),
|
|
520
|
+
selectedStats.value ? (openBlock(), createElementBlock("ul", _hoisted_5$19, [createElementVNode("li", _hoisted_6$18, [createElementVNode("span", null, toDisplayString(selectedStats.value.mainStat.label), 1), createElementVNode("span", null, toDisplayString(selectedStats.value.mainStat.value), 1)]), (openBlock(true), createElementBlock(Fragment, null, renderList(selectedStats.value.subStats, ({ label, value }, index) => {
|
|
521
|
+
return openBlock(), createElementBlock("li", {
|
|
522
|
+
key: index,
|
|
523
|
+
class: "stat"
|
|
524
|
+
}, [createElementVNode("span", null, toDisplayString(label), 1), createElementVNode("span", null, toDisplayString(value), 1)]);
|
|
525
|
+
}), 128))])) : createCommentVNode("v-if", true),
|
|
526
|
+
createElementVNode("div", _hoisted_7$18, [createElementVNode("p", _hoisted_8$14, toDisplayString(__props.setBonusHeading), 1), __props.setBonusLines.length > 0 ? (openBlock(), createElementBlock("ul", _hoisted_9$12, [(openBlock(true), createElementBlock(Fragment, null, renderList(__props.setBonusLines, (line) => {
|
|
527
|
+
return openBlock(), createElementBlock("li", { key: line }, toDisplayString(line), 1);
|
|
528
|
+
}), 128))])) : (openBlock(), createElementBlock("p", _hoisted_10$11, toDisplayString(__props.noSetBonusLabel), 1))]),
|
|
529
|
+
createVNode(Index_default$5, null, {
|
|
530
|
+
default: withCtx(() => [
|
|
531
|
+
createVNode(Index_default$16, {
|
|
532
|
+
class: "button",
|
|
533
|
+
disabled: !isSelectedWorn.value,
|
|
534
|
+
kind: unref(GameButtonKind).Pill,
|
|
535
|
+
onClick: _cache[0] || (_cache[0] = ($event) => emit("enhance", selectedIndex.value))
|
|
536
|
+
}, {
|
|
537
|
+
default: withCtx(() => [createTextVNode(toDisplayString(__props.enhanceLabel), 1)]),
|
|
538
|
+
_: 1
|
|
539
|
+
}, 8, ["disabled", "kind"]),
|
|
540
|
+
isSelectedWorn.value ? (openBlock(), createBlock(Index_default$16, {
|
|
541
|
+
key: 0,
|
|
542
|
+
class: "button",
|
|
543
|
+
kind: unref(GameButtonKind).Pill,
|
|
544
|
+
onClick: _cache[1] || (_cache[1] = ($event) => emit("unequip", selectedIndex.value))
|
|
545
|
+
}, {
|
|
546
|
+
default: withCtx(() => [createTextVNode(toDisplayString(__props.unequipLabel), 1)]),
|
|
547
|
+
_: 1
|
|
548
|
+
}, 8, ["kind"])) : (openBlock(), createBlock(Index_default$16, {
|
|
549
|
+
key: 1,
|
|
550
|
+
class: "button",
|
|
551
|
+
disabled: __props.equipDisabledSlots[selectedIndex.value],
|
|
552
|
+
kind: unref(GameButtonKind).Pill,
|
|
553
|
+
onClick: _cache[2] || (_cache[2] = ($event) => emit("equip", selectedIndex.value))
|
|
554
|
+
}, {
|
|
555
|
+
default: withCtx(() => [createTextVNode(toDisplayString(__props.equipLabel), 1)]),
|
|
556
|
+
_: 1
|
|
557
|
+
}, 8, ["disabled", "kind"])),
|
|
558
|
+
selectedStats.value ? (openBlock(), createBlock(Index_default$16, {
|
|
559
|
+
key: 2,
|
|
560
|
+
class: "button",
|
|
561
|
+
kind: unref(GameButtonKind).Pill,
|
|
562
|
+
onClick: _cache[3] || (_cache[3] = ($event) => emit("lock", selectedIndex.value))
|
|
563
|
+
}, {
|
|
564
|
+
default: withCtx(() => [createTextVNode(toDisplayString(selectedStats.value.isLocked ? __props.unlockLabel : __props.lockLabel), 1)]),
|
|
565
|
+
_: 1
|
|
566
|
+
}, 8, ["kind"])) : createCommentVNode("v-if", true)
|
|
567
|
+
]),
|
|
568
|
+
_: 1
|
|
569
|
+
})
|
|
570
|
+
])], 2112);
|
|
571
|
+
};
|
|
572
|
+
}
|
|
573
|
+
}), [["__scopeId", "data-v-525c0131"]]);
|
|
574
|
+
//#endregion
|
|
575
|
+
//#region src/components/CharacterMenuConstellation/Index.vue
|
|
576
|
+
const _hoisted_1$31 = { class: "constellations" };
|
|
577
|
+
const _hoisted_2$24 = { class: "nodes" };
|
|
578
|
+
const _hoisted_3$22 = ["disabled"];
|
|
579
|
+
var Index_default$6 = /*#__PURE__*/ export_helper_default(/* @__PURE__ */ defineComponent({
|
|
580
|
+
__name: "Index",
|
|
581
|
+
props: {
|
|
582
|
+
activated: {},
|
|
583
|
+
activateLabel: {},
|
|
584
|
+
isActivateDisabled: { type: Boolean }
|
|
585
|
+
},
|
|
586
|
+
emits: ["activate"],
|
|
587
|
+
setup(__props, { emit: __emit }) {
|
|
588
|
+
const emit = __emit;
|
|
589
|
+
const nodeStyles = CONSTELLATION_NODE_PLACES.map(({ left, top }) => ({
|
|
590
|
+
left: `calc(var(--unit) * ${left})`,
|
|
591
|
+
top: `calc(var(--unit) * ${top})`
|
|
592
|
+
}));
|
|
593
|
+
return (_ctx, _cache) => {
|
|
594
|
+
return openBlock(), createElementBlock(Fragment, null, [createCommentVNode(" The Constellation tab's panel: the six constellations down its right, each a ring lit once activated, and the\n button that activates the next under them. The game's star map is its own art and its names are not decoded yet,\n so neither is drawn "), createElementVNode("div", _hoisted_1$31, [createElementVNode("ul", _hoisted_2$24, [(openBlock(true), createElementBlock(Fragment, null, renderList(__props.activated, (isActivated, index) => {
|
|
595
|
+
return openBlock(), createElementBlock("li", {
|
|
596
|
+
key: index,
|
|
597
|
+
class: normalizeClass(["node", { lit: isActivated }]),
|
|
598
|
+
style: normalizeStyle(unref(nodeStyles)[index])
|
|
599
|
+
}, null, 6);
|
|
600
|
+
}), 128))]), createElementVNode("button", {
|
|
601
|
+
class: "activate",
|
|
602
|
+
disabled: __props.isActivateDisabled,
|
|
603
|
+
type: "button",
|
|
604
|
+
onClick: _cache[0] || (_cache[0] = ($event) => emit("activate"))
|
|
605
|
+
}, toDisplayString(__props.activateLabel), 9, _hoisted_3$22)])], 2112);
|
|
606
|
+
};
|
|
607
|
+
}
|
|
608
|
+
}), [["__scopeId", "data-v-4311eae1"]]);
|
|
609
|
+
//#endregion
|
|
610
|
+
//#region src/components/CharacterMenuProfile/Index.vue
|
|
611
|
+
const _hoisted_1$30 = { class: "profile" };
|
|
612
|
+
const _hoisted_2$23 = { class: "entries-column" };
|
|
613
|
+
const _hoisted_3$21 = { class: "entries" };
|
|
614
|
+
const _hoisted_4$19 = [
|
|
615
|
+
"aria-pressed",
|
|
616
|
+
"data-locked",
|
|
617
|
+
"onClick"
|
|
618
|
+
];
|
|
619
|
+
const _hoisted_5$18 = {
|
|
620
|
+
key: 0,
|
|
621
|
+
class: "namecard"
|
|
622
|
+
};
|
|
623
|
+
const _hoisted_6$17 = {
|
|
624
|
+
key: 0,
|
|
625
|
+
class: "story"
|
|
626
|
+
};
|
|
627
|
+
const _hoisted_7$17 = { class: "title" };
|
|
628
|
+
const _hoisted_8$13 = { class: "text" };
|
|
629
|
+
var Index_default$7 = /*#__PURE__*/ export_helper_default(/* @__PURE__ */ defineComponent({
|
|
630
|
+
__name: "Index",
|
|
631
|
+
props: {
|
|
632
|
+
entries: {},
|
|
633
|
+
namecardName: { default: "" }
|
|
634
|
+
},
|
|
635
|
+
setup(__props) {
|
|
636
|
+
const entryIndex = ref(0);
|
|
637
|
+
const selectedEntry = computed(() => __props.entries[entryIndex.value]);
|
|
638
|
+
return (_ctx, _cache) => {
|
|
639
|
+
return openBlock(), createElementBlock(Fragment, null, [createCommentVNode(" The Profile tab's panel: the stories down its left, each by its title, and the chosen one's title and text down its\n right. A locked story shows its unlock line in place of its text. The namecard the Friendship holds is a plate of its\n name under the stories, its art not drawn yet "), createElementVNode("div", _hoisted_1$30, [createElementVNode("div", _hoisted_2$23, [createElementVNode("ul", _hoisted_3$21, [(openBlock(true), createElementBlock(Fragment, null, renderList(__props.entries, (entry, index) => {
|
|
640
|
+
return openBlock(), createElementBlock("li", { key: index }, [createElementVNode("button", {
|
|
641
|
+
class: "entry",
|
|
642
|
+
"aria-pressed": index === entryIndex.value,
|
|
643
|
+
"data-locked": entry.isLocked,
|
|
644
|
+
type: "button",
|
|
645
|
+
onClick: ($event) => entryIndex.value = index
|
|
646
|
+
}, toDisplayString(entry.title), 9, _hoisted_4$19)]);
|
|
647
|
+
}), 128))]), __props.namecardName ? (openBlock(), createElementBlock("p", _hoisted_5$18, toDisplayString(__props.namecardName), 1)) : createCommentVNode("v-if", true)]), selectedEntry.value ? (openBlock(), createElementBlock("article", _hoisted_6$17, [createElementVNode("h2", _hoisted_7$17, toDisplayString(selectedEntry.value.title), 1), createElementVNode("p", _hoisted_8$13, toDisplayString(selectedEntry.value.text), 1)])) : createCommentVNode("v-if", true)])], 2112);
|
|
648
|
+
};
|
|
649
|
+
}
|
|
650
|
+
}), [["__scopeId", "data-v-d064a750"]]);
|
|
651
|
+
//#endregion
|
|
652
|
+
//#region src/components/CharacterMenuTalents/Index.vue
|
|
653
|
+
const _hoisted_1$29 = { class: "talents" };
|
|
654
|
+
const _hoisted_2$22 = { class: "talent-list" };
|
|
655
|
+
const _hoisted_3$20 = { class: "level" };
|
|
656
|
+
const _hoisted_4$18 = { class: "detail" };
|
|
657
|
+
const _hoisted_5$17 = { class: "phase" };
|
|
658
|
+
const _hoisted_6$16 = { class: "costs" };
|
|
659
|
+
const _hoisted_7$16 = {
|
|
660
|
+
key: 0,
|
|
661
|
+
class: "reason"
|
|
662
|
+
};
|
|
663
|
+
var Index_default$8 = /*#__PURE__*/ export_helper_default(/* @__PURE__ */ defineComponent({
|
|
664
|
+
__name: "Index",
|
|
665
|
+
props: {
|
|
666
|
+
costs: {},
|
|
667
|
+
isUpgradeDisabled: {},
|
|
668
|
+
levels: {},
|
|
669
|
+
phases: {},
|
|
670
|
+
reasons: {},
|
|
671
|
+
upgradeLabel: {}
|
|
672
|
+
},
|
|
673
|
+
emits: ["upgrade"],
|
|
674
|
+
setup(__props, { emit: __emit }) {
|
|
675
|
+
const emit = __emit;
|
|
676
|
+
return (_ctx, _cache) => {
|
|
677
|
+
return openBlock(), createElementBlock(Fragment, null, [createCommentVNode(" The Talents tab's panel: the three combat talents down its right, each with its level, the phase and cost of its next\n level, why it cannot rise if it cannot, and its Upgrade. The talents' names and the passives under them are not drawn\n yet, since the game's text for them is not decoded "), createElementVNode("div", _hoisted_1$29, [createElementVNode("ul", _hoisted_2$22, [(openBlock(true), createElementBlock(Fragment, null, renderList(__props.levels, (level, index) => {
|
|
678
|
+
return openBlock(), createElementBlock("li", {
|
|
679
|
+
key: index,
|
|
680
|
+
class: "talent"
|
|
681
|
+
}, [
|
|
682
|
+
createElementVNode("span", _hoisted_3$20, toDisplayString(level), 1),
|
|
683
|
+
createElementVNode("div", _hoisted_4$18, [
|
|
684
|
+
createElementVNode("span", _hoisted_5$17, toDisplayString(__props.phases[index]), 1),
|
|
685
|
+
createElementVNode("ul", _hoisted_6$16, [(openBlock(true), createElementBlock(Fragment, null, renderList(__props.costs[index], (cost, costIndex) => {
|
|
686
|
+
return openBlock(), createElementBlock("li", { key: costIndex }, toDisplayString(cost), 1);
|
|
687
|
+
}), 128))]),
|
|
688
|
+
__props.reasons[index] ? (openBlock(), createElementBlock("span", _hoisted_7$16, toDisplayString(__props.reasons[index]), 1)) : createCommentVNode("v-if", true)
|
|
689
|
+
]),
|
|
690
|
+
createVNode(Index_default$16, {
|
|
691
|
+
class: "upgrade",
|
|
692
|
+
disabled: __props.isUpgradeDisabled[index],
|
|
693
|
+
kind: unref(GameButtonKind).Reply,
|
|
694
|
+
onClick: ($event) => emit("upgrade", index)
|
|
695
|
+
}, {
|
|
696
|
+
default: withCtx(() => [createTextVNode(toDisplayString(__props.upgradeLabel), 1)]),
|
|
697
|
+
_: 1
|
|
698
|
+
}, 8, [
|
|
699
|
+
"disabled",
|
|
700
|
+
"kind",
|
|
701
|
+
"onClick"
|
|
702
|
+
]),
|
|
703
|
+
_cache[0] || (_cache[0] = createElementVNode("span", { class: "icon" }, null, -1))
|
|
704
|
+
]);
|
|
705
|
+
}), 128))])])], 2112);
|
|
706
|
+
};
|
|
707
|
+
}
|
|
708
|
+
}), [["__scopeId", "data-v-65541162"]]);
|
|
709
|
+
//#endregion
|
|
710
|
+
//#region src/components/CharacterMenuWeapons/Index.vue
|
|
711
|
+
const _hoisted_1$28 = { class: "weapons" };
|
|
712
|
+
const _hoisted_2$21 = { class: "name" };
|
|
713
|
+
const _hoisted_3$19 = { class: "stars" };
|
|
714
|
+
const _hoisted_4$17 = { class: "stats" };
|
|
715
|
+
const _hoisted_5$16 = { class: "stat" };
|
|
716
|
+
const _hoisted_6$15 = { class: "stat" };
|
|
717
|
+
const _hoisted_7$15 = { class: "level" };
|
|
718
|
+
const _hoisted_8$12 = { class: "level-text" };
|
|
719
|
+
const _hoisted_9$11 = { class: "refinement" };
|
|
720
|
+
var Index_default$9 = /*#__PURE__*/ export_helper_default(/* @__PURE__ */ defineComponent({
|
|
721
|
+
__name: "Index",
|
|
722
|
+
props: {
|
|
723
|
+
ascension: {},
|
|
724
|
+
baseAttack: {},
|
|
725
|
+
levelText: {},
|
|
726
|
+
name: {},
|
|
727
|
+
rarity: {},
|
|
728
|
+
refinement: {},
|
|
729
|
+
subStatValue: {}
|
|
730
|
+
},
|
|
731
|
+
setup(__props) {
|
|
732
|
+
return (_ctx, _cache) => {
|
|
733
|
+
return openBlock(), createElementBlock(Fragment, null, [createCommentVNode(" The Weapons tab's panel: the weapon's name and stars, its base ATK and secondary attribute, its level with the\n ascension phases reached, its refinement rank, and the two buttons beneath "), createElementVNode("div", _hoisted_1$28, [
|
|
734
|
+
createElementVNode("p", _hoisted_2$21, toDisplayString(__props.name), 1),
|
|
735
|
+
createElementVNode("p", _hoisted_3$19, [(openBlock(true), createElementBlock(Fragment, null, renderList(__props.rarity, (star) => {
|
|
736
|
+
return openBlock(), createElementBlock("span", {
|
|
737
|
+
key: star,
|
|
738
|
+
class: "star"
|
|
739
|
+
});
|
|
740
|
+
}), 128))]),
|
|
741
|
+
createElementVNode("ul", _hoisted_4$17, [createElementVNode("li", _hoisted_5$16, toDisplayString(__props.baseAttack), 1), createElementVNode("li", _hoisted_6$15, toDisplayString(__props.subStatValue), 1)]),
|
|
742
|
+
createElementVNode("p", _hoisted_7$15, [createElementVNode("span", _hoisted_8$12, toDisplayString(__props.levelText), 1), (openBlock(true), createElementBlock(Fragment, null, renderList(unref(6), (phase) => {
|
|
743
|
+
return openBlock(), createElementBlock("span", {
|
|
744
|
+
key: phase,
|
|
745
|
+
class: normalizeClass(["spark", { lit: phase <= __props.ascension }])
|
|
746
|
+
}, null, 2);
|
|
747
|
+
}), 128))]),
|
|
748
|
+
createElementVNode("p", _hoisted_9$11, toDisplayString(__props.refinement), 1),
|
|
749
|
+
createVNode(Index_default$5)
|
|
750
|
+
])], 2112);
|
|
751
|
+
};
|
|
752
|
+
}
|
|
753
|
+
}), [["__scopeId", "data-v-77cff4ef"]]);
|
|
754
|
+
//#endregion
|
|
755
|
+
//#region src/components/CookingScreen/Index.vue
|
|
756
|
+
const _hoisted_1$27 = { class: "cooking-screen" };
|
|
757
|
+
const _hoisted_2$20 = { class: "title" };
|
|
758
|
+
const _hoisted_3$18 = { class: "dishes" };
|
|
759
|
+
const _hoisted_4$16 = ["aria-pressed", "onClick"];
|
|
760
|
+
const _hoisted_5$15 = {
|
|
761
|
+
"aria-hidden": "true",
|
|
762
|
+
class: "stage",
|
|
763
|
+
viewBox: "0 0 1920 1080"
|
|
764
|
+
};
|
|
765
|
+
const _hoisted_6$14 = ["d"];
|
|
766
|
+
const _hoisted_7$14 = ["d"];
|
|
767
|
+
const _hoisted_8$11 = ["d"];
|
|
768
|
+
const _hoisted_9$10 = ["cx", "cy"];
|
|
769
|
+
const _hoisted_10$10 = ["disabled"];
|
|
770
|
+
var Index_default$10 = /*#__PURE__*/ export_helper_default(/* @__PURE__ */ defineComponent({
|
|
771
|
+
__name: "Index",
|
|
772
|
+
props: {
|
|
773
|
+
autoCookLabel: {},
|
|
774
|
+
canAutoCook: { type: Boolean },
|
|
775
|
+
dishes: {},
|
|
776
|
+
pointer: {},
|
|
777
|
+
selectedId: {},
|
|
778
|
+
stopLabel: {},
|
|
779
|
+
title: {},
|
|
780
|
+
zones: {}
|
|
781
|
+
},
|
|
782
|
+
emits: [
|
|
783
|
+
"autoCook",
|
|
784
|
+
"close",
|
|
785
|
+
"select",
|
|
786
|
+
"stop"
|
|
787
|
+
],
|
|
788
|
+
setup(__props, { emit: __emit }) {
|
|
789
|
+
const emit = __emit;
|
|
790
|
+
const toArcPoint = (fraction) => {
|
|
791
|
+
const angle = Math.PI * (1 - Math.min(1, Math.max(0, fraction)));
|
|
792
|
+
return {
|
|
793
|
+
x: 960 + 435 * Math.cos(angle),
|
|
794
|
+
y: 832 - 120 * Math.sin(angle)
|
|
795
|
+
};
|
|
796
|
+
};
|
|
797
|
+
const toBarPath = ([start, end]) => {
|
|
798
|
+
const from = toArcPoint(start);
|
|
799
|
+
const to = toArcPoint(end);
|
|
800
|
+
return `M ${from.x} ${from.y} A 435 120 0 0 1 ${to.x} ${to.y}`;
|
|
801
|
+
};
|
|
802
|
+
return (_ctx, _cache) => {
|
|
803
|
+
return openBlock(), createElementBlock("div", _hoisted_1$27, [
|
|
804
|
+
createElementVNode("h1", _hoisted_2$20, toDisplayString(__props.title), 1),
|
|
805
|
+
createElementVNode("button", {
|
|
806
|
+
class: "close",
|
|
807
|
+
type: "button",
|
|
808
|
+
onClick: _cache[0] || (_cache[0] = ($event) => emit("close"))
|
|
809
|
+
}, "×"),
|
|
810
|
+
createElementVNode("ul", _hoisted_3$18, [(openBlock(true), createElementBlock(Fragment, null, renderList(__props.dishes, (dish) => {
|
|
811
|
+
return openBlock(), createElementBlock("li", { key: dish.id }, [createElementVNode("button", {
|
|
812
|
+
"aria-pressed": dish.id === __props.selectedId,
|
|
813
|
+
class: normalizeClass({ selected: dish.id === __props.selectedId }),
|
|
814
|
+
type: "button",
|
|
815
|
+
onClick: ($event) => emit("select", dish.id)
|
|
816
|
+
}, toDisplayString(dish.name), 11, _hoisted_4$16)]);
|
|
817
|
+
}), 128))]),
|
|
818
|
+
(openBlock(), createElementBlock("svg", _hoisted_5$15, [
|
|
819
|
+
createCommentVNode(" A provisional pot until the game's own is traced from the recording "),
|
|
820
|
+
_cache[3] || (_cache[3] = createElementVNode("ellipse", {
|
|
821
|
+
class: "pot-rim",
|
|
822
|
+
cx: "960",
|
|
823
|
+
cy: "330",
|
|
824
|
+
rx: "150",
|
|
825
|
+
ry: "36"
|
|
826
|
+
}, null, -1)),
|
|
827
|
+
_cache[4] || (_cache[4] = createElementVNode("path", {
|
|
828
|
+
class: "pot",
|
|
829
|
+
d: "M810 330 Q830 470 960 480 Q1090 470 1110 330 Z"
|
|
830
|
+
}, null, -1)),
|
|
831
|
+
createElementVNode("path", {
|
|
832
|
+
class: "track",
|
|
833
|
+
d: toBarPath([0, 1])
|
|
834
|
+
}, null, 8, _hoisted_6$14),
|
|
835
|
+
createElementVNode("path", {
|
|
836
|
+
class: "regular",
|
|
837
|
+
d: toBarPath(__props.zones.regular)
|
|
838
|
+
}, null, 8, _hoisted_7$14),
|
|
839
|
+
createElementVNode("path", {
|
|
840
|
+
class: "delicious",
|
|
841
|
+
d: toBarPath(__props.zones.delicious)
|
|
842
|
+
}, null, 8, _hoisted_8$11),
|
|
843
|
+
createElementVNode("circle", {
|
|
844
|
+
class: "pointer",
|
|
845
|
+
cx: toArcPoint(__props.pointer).x,
|
|
846
|
+
cy: toArcPoint(__props.pointer).y,
|
|
847
|
+
r: "16"
|
|
848
|
+
}, null, 8, _hoisted_9$10)
|
|
849
|
+
])),
|
|
850
|
+
createElementVNode("button", {
|
|
851
|
+
disabled: !__props.canAutoCook,
|
|
852
|
+
class: "auto-cook",
|
|
853
|
+
type: "button",
|
|
854
|
+
onClick: _cache[1] || (_cache[1] = ($event) => emit("autoCook"))
|
|
855
|
+
}, toDisplayString(__props.autoCookLabel), 9, _hoisted_10$10),
|
|
856
|
+
createElementVNode("button", {
|
|
857
|
+
class: "stop",
|
|
858
|
+
type: "button",
|
|
859
|
+
onClick: _cache[2] || (_cache[2] = ($event) => emit("stop"))
|
|
860
|
+
}, toDisplayString(__props.stopLabel), 1)
|
|
861
|
+
]);
|
|
862
|
+
};
|
|
863
|
+
}
|
|
864
|
+
}), [["__scopeId", "data-v-4aee3a78"]]);
|
|
865
|
+
//#endregion
|
|
866
|
+
//#region src/components/DiscButton/Index.vue
|
|
867
|
+
const _hoisted_1$26 = ["aria-label"];
|
|
868
|
+
var Index_default$13 = /*#__PURE__*/ export_helper_default(/* @__PURE__ */ defineComponent({
|
|
869
|
+
__name: "Index",
|
|
870
|
+
props: {
|
|
871
|
+
label: {},
|
|
872
|
+
size: {}
|
|
873
|
+
},
|
|
874
|
+
setup(__props) {
|
|
875
|
+
return (_ctx, _cache) => {
|
|
876
|
+
return openBlock(), createElementBlock(Fragment, null, [createCommentVNode(" A white disc under a soft dark rim, its content centred on it as the game centres its icons "), createElementVNode("button", {
|
|
877
|
+
class: "disc-button",
|
|
878
|
+
"aria-label": __props.label,
|
|
879
|
+
type: "button",
|
|
880
|
+
style: normalizeStyle({ "--size": __props.size })
|
|
881
|
+
}, [renderSlot(_ctx.$slots, "default", {}, void 0, true)], 12, _hoisted_1$26)], 2112);
|
|
882
|
+
};
|
|
883
|
+
}
|
|
884
|
+
}), [["__scopeId", "data-v-f5c878ff"]]);
|
|
885
|
+
//#endregion
|
|
886
|
+
//#region src/components/ScreenTitle/Index.vue
|
|
887
|
+
const _hoisted_1$25 = { class: "title" };
|
|
888
|
+
var Index_default$30 = /*#__PURE__*/ export_helper_default(/* @__PURE__ */ defineComponent({
|
|
889
|
+
__name: "Index",
|
|
890
|
+
setup(__props) {
|
|
891
|
+
return (_ctx, _cache) => {
|
|
892
|
+
return openBlock(), createElementBlock(Fragment, null, [createCommentVNode(" The title a screen draws across its head, at the game's place for it in its own pixels at 1080 high (`--unit` a pixel\n of that frame). Its parent's rules add what it differs by, such as its line height "), createElementVNode("p", _hoisted_1$25, [renderSlot(_ctx.$slots, "default", {}, void 0, true)])], 2112);
|
|
893
|
+
};
|
|
894
|
+
}
|
|
895
|
+
}), [["__scopeId", "data-v-5c68ef69"]]);
|
|
896
|
+
//#endregion
|
|
897
|
+
//#region src/components/CraftingScreen/Index.vue
|
|
898
|
+
const _hoisted_1$24 = { class: "crafting-screen" };
|
|
899
|
+
const _hoisted_2$19 = { class: "head" };
|
|
900
|
+
const _hoisted_3$17 = { class: "coins" };
|
|
901
|
+
const _hoisted_4$15 = { class: "tabs" };
|
|
902
|
+
const _hoisted_5$14 = ["aria-pressed", "onClick"];
|
|
903
|
+
const _hoisted_6$13 = { class: "tab-name" };
|
|
904
|
+
const _hoisted_7$13 = { class: "list" };
|
|
905
|
+
const _hoisted_8$10 = { class: "recipes" };
|
|
906
|
+
const _hoisted_9$9 = ["aria-pressed", "onClick"];
|
|
907
|
+
const _hoisted_10$9 = { class: "recipe-name" };
|
|
908
|
+
const _hoisted_11$8 = {
|
|
909
|
+
key: 0,
|
|
910
|
+
class: "recipe-count"
|
|
911
|
+
};
|
|
912
|
+
const _hoisted_12$8 = { class: "detail" };
|
|
913
|
+
const _hoisted_13$8 = { class: "recipe-title" };
|
|
914
|
+
const _hoisted_14$8 = { class: "crafters" };
|
|
915
|
+
const _hoisted_15$7 = ["aria-pressed", "onClick"];
|
|
916
|
+
const _hoisted_16$7 = { class: "crafter-name" };
|
|
917
|
+
const _hoisted_17$7 = ["aria-label", "max"];
|
|
918
|
+
const _hoisted_18$6 = { class: "crafted" };
|
|
919
|
+
const _hoisted_19$6 = { class: "required" };
|
|
920
|
+
const _hoisted_20$6 = { class: "materials-label" };
|
|
921
|
+
const _hoisted_21$6 = { class: "materials" };
|
|
922
|
+
var Index_default$11 = /*#__PURE__*/ export_helper_default(/* @__PURE__ */ defineComponent({
|
|
923
|
+
__name: "Index",
|
|
924
|
+
props: /*@__PURE__*/ mergeModels({
|
|
925
|
+
amountLabel: {},
|
|
926
|
+
amountMaximum: {},
|
|
927
|
+
closeLabel: {},
|
|
928
|
+
coins: {},
|
|
929
|
+
craftedLabel: {},
|
|
930
|
+
crafters: {},
|
|
931
|
+
craftingMaterialsLabel: {},
|
|
932
|
+
craftLabel: {},
|
|
933
|
+
materials: {},
|
|
934
|
+
recipes: {},
|
|
935
|
+
requiredCoins: {},
|
|
936
|
+
requiredLabel: {},
|
|
937
|
+
tabs: {},
|
|
938
|
+
title: {}
|
|
939
|
+
}, {
|
|
940
|
+
"amount": { default: 1 },
|
|
941
|
+
"amountModifiers": {},
|
|
942
|
+
"crafterId": { default: 0 },
|
|
943
|
+
"crafterIdModifiers": {},
|
|
944
|
+
"recipeId": { default: 0 },
|
|
945
|
+
"recipeIdModifiers": {},
|
|
946
|
+
"tabId": { default: 0 },
|
|
947
|
+
"tabIdModifiers": {}
|
|
948
|
+
}),
|
|
949
|
+
emits: /*@__PURE__*/ mergeModels(["close", "craft"], [
|
|
950
|
+
"update:amount",
|
|
951
|
+
"update:crafterId",
|
|
952
|
+
"update:recipeId",
|
|
953
|
+
"update:tabId"
|
|
954
|
+
]),
|
|
955
|
+
setup(__props, { emit: __emit }) {
|
|
956
|
+
const amount = useModel(__props, "amount");
|
|
957
|
+
const crafterId = useModel(__props, "crafterId");
|
|
958
|
+
const recipeId = useModel(__props, "recipeId");
|
|
959
|
+
const tabId = useModel(__props, "tabId");
|
|
960
|
+
const emit = __emit;
|
|
961
|
+
return (_ctx, _cache) => {
|
|
962
|
+
return openBlock(), createElementBlock(Fragment, null, [createCommentVNode(" The Craft screen, its pieces placed in the game's own pixels at 1080 high (`--unit` a pixel of that frame): the title\n and the coins across the head, the way out at the head's right, and the recipe tabs under the title. The screen takes its\n place from the game's layout, not a two-column grid, since its recipe list is narrower than its detail "), createElementVNode("div", _hoisted_1$24, [
|
|
963
|
+
createElementVNode("header", _hoisted_2$19, [
|
|
964
|
+
createVNode(Index_default$30, {
|
|
965
|
+
class: "heading",
|
|
966
|
+
role: "heading",
|
|
967
|
+
"aria-level": "1"
|
|
968
|
+
}, {
|
|
969
|
+
default: withCtx(() => [createTextVNode(toDisplayString(__props.title), 1)]),
|
|
970
|
+
_: 1
|
|
971
|
+
}),
|
|
972
|
+
createElementVNode("p", _hoisted_3$17, [_cache[3] || (_cache[3] = createElementVNode("span", {
|
|
973
|
+
class: "coin",
|
|
974
|
+
"aria-hidden": "true"
|
|
975
|
+
}, null, -1)), createTextVNode(" " + toDisplayString(__props.coins), 1)]),
|
|
976
|
+
createVNode(Index_default$13, {
|
|
977
|
+
class: "close",
|
|
978
|
+
label: __props.closeLabel,
|
|
979
|
+
size: 56,
|
|
980
|
+
onClick: _cache[0] || (_cache[0] = ($event) => emit("close"))
|
|
981
|
+
}, {
|
|
982
|
+
default: withCtx(() => [..._cache[4] || (_cache[4] = [createElementVNode("svg", {
|
|
983
|
+
viewBox: "0 0 24 24",
|
|
984
|
+
"aria-hidden": "true"
|
|
985
|
+
}, [createElementVNode("path", { d: "M6 6 18 18M18 6 6 18" })], -1)])]),
|
|
986
|
+
_: 1
|
|
987
|
+
}, 8, ["label"])
|
|
988
|
+
]),
|
|
989
|
+
createElementVNode("ul", _hoisted_4$15, [(openBlock(true), createElementBlock(Fragment, null, renderList(__props.tabs, (tab) => {
|
|
990
|
+
return openBlock(), createElementBlock("li", { key: tab.id }, [createElementVNode("button", {
|
|
991
|
+
class: "tab",
|
|
992
|
+
"aria-pressed": tab.id === tabId.value,
|
|
993
|
+
type: "button",
|
|
994
|
+
onClick: ($event) => tabId.value = tab.id
|
|
995
|
+
}, [createElementVNode("span", _hoisted_6$13, toDisplayString(tab.name), 1)], 8, _hoisted_5$14)]);
|
|
996
|
+
}), 128))]),
|
|
997
|
+
createElementVNode("div", _hoisted_7$13, [createElementVNode("ul", _hoisted_8$10, [(openBlock(true), createElementBlock(Fragment, null, renderList(__props.recipes, (recipe) => {
|
|
998
|
+
return openBlock(), createElementBlock("li", { key: recipe.id }, [createElementVNode("button", {
|
|
999
|
+
class: "recipe",
|
|
1000
|
+
"aria-pressed": recipe.id === recipeId.value,
|
|
1001
|
+
type: "button",
|
|
1002
|
+
onClick: ($event) => recipeId.value = recipe.id
|
|
1003
|
+
}, [createElementVNode("span", _hoisted_10$9, toDisplayString(recipe.name), 1), recipe.count !== void 0 ? (openBlock(), createElementBlock("span", _hoisted_11$8, toDisplayString(recipe.count), 1)) : createCommentVNode("v-if", true)], 8, _hoisted_9$9)]);
|
|
1004
|
+
}), 128))])]),
|
|
1005
|
+
createElementVNode("div", _hoisted_12$8, [
|
|
1006
|
+
_cache[5] || (_cache[5] = createElementVNode("div", {
|
|
1007
|
+
class: "materials-band",
|
|
1008
|
+
"aria-hidden": "true"
|
|
1009
|
+
}, null, -1)),
|
|
1010
|
+
createElementVNode("p", _hoisted_13$8, toDisplayString(__props.recipes.find((recipe) => recipe.id === recipeId.value)?.name), 1),
|
|
1011
|
+
createElementVNode("ul", _hoisted_14$8, [(openBlock(true), createElementBlock(Fragment, null, renderList(__props.crafters, (crafter) => {
|
|
1012
|
+
return openBlock(), createElementBlock("li", { key: crafter.id }, [createElementVNode("button", {
|
|
1013
|
+
class: "crafter",
|
|
1014
|
+
"aria-pressed": crafter.id === crafterId.value,
|
|
1015
|
+
type: "button",
|
|
1016
|
+
onClick: ($event) => crafterId.value = crafter.id
|
|
1017
|
+
}, [createElementVNode("span", _hoisted_16$7, toDisplayString(crafter.name), 1)], 8, _hoisted_15$7)]);
|
|
1018
|
+
}), 128))]),
|
|
1019
|
+
withDirectives(createElementVNode("input", {
|
|
1020
|
+
"onUpdate:modelValue": _cache[1] || (_cache[1] = ($event) => amount.value = $event),
|
|
1021
|
+
"aria-label": __props.amountLabel,
|
|
1022
|
+
class: "amount",
|
|
1023
|
+
max: __props.amountMaximum,
|
|
1024
|
+
min: "1",
|
|
1025
|
+
type: "range"
|
|
1026
|
+
}, null, 8, _hoisted_17$7), [[
|
|
1027
|
+
vModelText,
|
|
1028
|
+
amount.value,
|
|
1029
|
+
void 0,
|
|
1030
|
+
{ number: true }
|
|
1031
|
+
]]),
|
|
1032
|
+
createElementVNode("p", _hoisted_18$6, toDisplayString(__props.craftedLabel), 1),
|
|
1033
|
+
createElementVNode("p", _hoisted_19$6, toDisplayString(__props.requiredLabel) + " " + toDisplayString(__props.requiredCoins), 1),
|
|
1034
|
+
createElementVNode("p", _hoisted_20$6, toDisplayString(__props.craftingMaterialsLabel), 1),
|
|
1035
|
+
createElementVNode("ul", _hoisted_21$6, [(openBlock(true), createElementBlock(Fragment, null, renderList(__props.materials, (material) => {
|
|
1036
|
+
return openBlock(), createElementBlock("li", {
|
|
1037
|
+
key: material.id,
|
|
1038
|
+
class: "material"
|
|
1039
|
+
}, toDisplayString(material.owned) + " / " + toDisplayString(material.required), 1);
|
|
1040
|
+
}), 128))]),
|
|
1041
|
+
createElementVNode("button", {
|
|
1042
|
+
class: "craft",
|
|
1043
|
+
type: "button",
|
|
1044
|
+
onClick: _cache[2] || (_cache[2] = ($event) => emit("craft"))
|
|
1045
|
+
}, toDisplayString(__props.craftLabel), 1)
|
|
1046
|
+
])
|
|
1047
|
+
])], 2112);
|
|
1048
|
+
};
|
|
1049
|
+
}
|
|
1050
|
+
}), [["__scopeId", "data-v-bd114327"]]);
|
|
1051
|
+
//#endregion
|
|
1052
|
+
//#region src/models/DialogueChoiceIcon.ts
|
|
1053
|
+
let DialogueChoiceIcon = /* @__PURE__ */ function(DialogueChoiceIcon) {
|
|
1054
|
+
DialogueChoiceIcon["Quest"] = "Quest";
|
|
1055
|
+
DialogueChoiceIcon["StoryQuest"] = "StoryQuest";
|
|
1056
|
+
DialogueChoiceIcon["Talk"] = "Talk";
|
|
1057
|
+
return DialogueChoiceIcon;
|
|
1058
|
+
}({});
|
|
1059
|
+
//#endregion
|
|
1060
|
+
//#region src/services/DialogueChoiceIconPathMap.ts
|
|
1061
|
+
const DialogueChoiceIconPathMap = {
|
|
1062
|
+
["Quest"]: {
|
|
1063
|
+
d: "m140.5 22h19l1 1h8l1 1h5l1 1 11 2 9 3 3 2h2l12 6 14 9 22.5 21.5 13 19 6 12v2l2 3 3 9v3l3 9v5l1 1v8l1 1v19l-1 1v8l-1 1v5l-1 1-2 11-3 9-2 3v2l-6 12-13 19-17.5 17.5-19 13-12 6h-2l-3 2-9 3h-3l-9 3h-5l-1 1h-8l-1 1h-19l-1-1h-8l-1-1h-5l-1-1-11-2-9-3-3-2h-2l-12-6-19-13-17.5-17.5-13-19-6-12v-2l-2-3-3-9v-3l-3-9v-5l-1-1v-8l-1-1v-19l1-1v-8l1-1v-5l1-1 2-11 3-9 2-3v-2l6-12 13-19 17.5-17.5 14-10 17-9h2l3-2 9-3h3l9-3q4.75 1.25 6-1h8l1-1z",
|
|
1064
|
+
viewBox: "0 0 300 300"
|
|
1065
|
+
},
|
|
1066
|
+
["StoryQuest"]: {
|
|
1067
|
+
d: "m63.5 18h2l45.5 45.5v2l-45.5 45.5h-2l-45.5-45.5v-2l45.5-45.5z",
|
|
1068
|
+
viewBox: "0 0 128 128"
|
|
1069
|
+
},
|
|
1070
|
+
["Talk"]: {
|
|
1071
|
+
d: "m65 0h46.5q.88.04.5 3h1.5l1 1 9 1 4 3 6 1 3 3h2l5 4 3 1 6.5 5.5q-.75 2.25 1.5 1.5 3 1.12 2.5 4l3 1.5 8 10q.35 5.15 4 7l1 7 1 2.5 2 .5v35.5q-2.67-1.12-2 1.5l-1 1-1 6q-3.18 2.32-4 7-6.72 9.78-15.5 17.5l-5 4h-1.5v2.5l3 5 8 9 1 3-1 3 1 2-2.5 3.5-2.5 1.5-.5 1.5h-29.5q1.13-2.67-1.5-2l-7-3-8-8-6-1-1 1h-23l-6-2-12-1-5-3-6-1-4-3-4-1-15-11-8.5-8.5-7-9-1-4-3-3-2-8.5q-2.96.38-3-.5v-35.5h3v-1.5l1-1 1-7q3.65-1.85 4-7l9.5-11.5q2.25.75 1.5-1.5 1.12-3 4-2.5l1.5-3 11-8 4-1 3-3 6-1 4-3 9-1 2.5-1v-3zm22 8-1 1h-13l-6 3-9 1-4 3-6 1-3 3-4 1-11 8-2 3-3 1v2l-8 9q0 5-4 7l-1 7-3 5v23l3 5 1 6 3 3 1 4 8 10 13 10q4 1 6 4l6 2 2 2 6 1 6 3 12 1q1 2 6 1l1 1h12q1-2 6-1l1-1h8l3 5 8 6 10 4h18v-2l-5-5-6-9-2-5v-4l14-11 10-12 1-4 3-3 1-6 3-5v-23l-3-5-1-7-3-3-1-4-8-9q1-3-1-2l-2-2-12-10-4-1-3-3-6-1-4-3-9-1-6-3h-13q-2-2-5-1zm-39.5 58h3l5.5 3.5 2 4v4l-4.5 6.5h-8l-4.5-4.5v-9l1.5-1.5 5-3zm39 0h4q1.85 2.85 5.5 3-.75 2.58 1 3.5v6l-2 4.5q-3 2-10.5 1l-2.5-1-2-5.5v-5q1.75-.92 1-3.5 3.65-.15 5.5-3zm40 0h3l6.5 4.5v9l-4.5 4.5h-8l-2.5-2.5-2-4v-4l3.5-5.5 4-2z",
|
|
1072
|
+
viewBox: "0 0 176 160"
|
|
1073
|
+
}
|
|
1074
|
+
};
|
|
1075
|
+
//#endregion
|
|
1076
|
+
//#region src/components/DialogueScreen/Index.vue
|
|
1077
|
+
const _hoisted_1$23 = {
|
|
1078
|
+
key: 0,
|
|
1079
|
+
class: "speaker"
|
|
1080
|
+
};
|
|
1081
|
+
const _hoisted_2$18 = {
|
|
1082
|
+
key: 1,
|
|
1083
|
+
class: "role"
|
|
1084
|
+
};
|
|
1085
|
+
const _hoisted_3$16 = { class: "line" };
|
|
1086
|
+
const _hoisted_4$14 = { "aria-hidden": "true" };
|
|
1087
|
+
const _hoisted_5$13 = {
|
|
1088
|
+
class: "unrevealed",
|
|
1089
|
+
"aria-hidden": "true"
|
|
1090
|
+
};
|
|
1091
|
+
const _hoisted_6$12 = { class: "spoken" };
|
|
1092
|
+
const _hoisted_7$12 = {
|
|
1093
|
+
key: 0,
|
|
1094
|
+
class: "choices"
|
|
1095
|
+
};
|
|
1096
|
+
const _hoisted_8$9 = ["data-interaction-state"];
|
|
1097
|
+
const _hoisted_9$8 = ["viewBox"];
|
|
1098
|
+
const _hoisted_10$8 = ["d"];
|
|
1099
|
+
var Index_default$12 = /*#__PURE__*/ export_helper_default(/* @__PURE__ */ defineComponent({
|
|
1100
|
+
__name: "Index",
|
|
1101
|
+
props: {
|
|
1102
|
+
choices: {},
|
|
1103
|
+
line: {},
|
|
1104
|
+
revealedLength: {},
|
|
1105
|
+
selectedChoiceId: {},
|
|
1106
|
+
speakerName: {},
|
|
1107
|
+
speakerRole: {}
|
|
1108
|
+
},
|
|
1109
|
+
emits: ["advance", "choose"],
|
|
1110
|
+
setup(__props, { emit: __emit }) {
|
|
1111
|
+
const emit = __emit;
|
|
1112
|
+
const lineParts = computed(() => {
|
|
1113
|
+
const characters = [...__props.line];
|
|
1114
|
+
return {
|
|
1115
|
+
revealed: characters.slice(0, __props.revealedLength).join(""),
|
|
1116
|
+
unrevealed: characters.slice(__props.revealedLength).join("")
|
|
1117
|
+
};
|
|
1118
|
+
});
|
|
1119
|
+
return (_ctx, _cache) => {
|
|
1120
|
+
return openBlock(), createElementBlock(Fragment, null, [createCommentVNode(" The game's dialogue over the world: a click anywhere goes on, the speaker's name over the line at the foot of the\n Screen, and the replies down the right. Sized and placed off the English client's recording of its dialogue\n choices; the selected reply's look and a narration's place wait on recordings still owed "), createElementVNode("div", {
|
|
1121
|
+
class: "dialogue-screen",
|
|
1122
|
+
onClick: _cache[0] || (_cache[0] = ($event) => emit("advance"))
|
|
1123
|
+
}, [createElementVNode("div", {
|
|
1124
|
+
class: normalizeClass(["band", { narration: !__props.speakerName }]),
|
|
1125
|
+
"aria-live": "polite"
|
|
1126
|
+
}, [
|
|
1127
|
+
__props.speakerName ? (openBlock(), createElementBlock("p", _hoisted_1$23, toDisplayString(__props.speakerName), 1)) : createCommentVNode("v-if", true),
|
|
1128
|
+
__props.speakerRole ? (openBlock(), createElementBlock("p", _hoisted_2$18, toDisplayString(__props.speakerRole), 1)) : createCommentVNode("v-if", true),
|
|
1129
|
+
createElementVNode("p", _hoisted_3$16, [
|
|
1130
|
+
createElementVNode("span", _hoisted_4$14, toDisplayString(lineParts.value.revealed), 1),
|
|
1131
|
+
createElementVNode("span", _hoisted_5$13, toDisplayString(lineParts.value.unrevealed), 1),
|
|
1132
|
+
createElementVNode("span", _hoisted_6$12, toDisplayString(__props.line), 1)
|
|
1133
|
+
])
|
|
1134
|
+
], 2), __props.choices.length > 0 ? (openBlock(), createElementBlock("ul", _hoisted_7$12, [(openBlock(true), createElementBlock(Fragment, null, renderList(__props.choices, ({ icon, id, text }) => {
|
|
1135
|
+
return openBlock(), createElementBlock("li", {
|
|
1136
|
+
key: id,
|
|
1137
|
+
"data-interaction-state": id === __props.selectedChoiceId ? "Hover" : void 0
|
|
1138
|
+
}, [createVNode(Index_default$16, {
|
|
1139
|
+
class: "choice",
|
|
1140
|
+
"data-icon": icon,
|
|
1141
|
+
kind: unref(GameButtonKind).Reply,
|
|
1142
|
+
onClick: withModifiers(($event) => emit("choose", id), ["stop"])
|
|
1143
|
+
}, {
|
|
1144
|
+
default: withCtx(() => [(openBlock(), createElementBlock("svg", {
|
|
1145
|
+
class: "icon",
|
|
1146
|
+
"aria-hidden": "true",
|
|
1147
|
+
viewBox: unref(DialogueChoiceIconPathMap)[icon].viewBox
|
|
1148
|
+
}, [createElementVNode("path", {
|
|
1149
|
+
d: unref(DialogueChoiceIconPathMap)[icon].d,
|
|
1150
|
+
fill: "currentColor"
|
|
1151
|
+
}, null, 8, _hoisted_10$8)], 8, _hoisted_9$8)), createTextVNode(" " + toDisplayString(text), 1)]),
|
|
1152
|
+
_: 2
|
|
1153
|
+
}, 1032, [
|
|
1154
|
+
"data-icon",
|
|
1155
|
+
"kind",
|
|
1156
|
+
"onClick"
|
|
1157
|
+
])], 8, _hoisted_8$9);
|
|
1158
|
+
}), 128))])) : createCommentVNode("v-if", true)])], 2112);
|
|
1159
|
+
};
|
|
1160
|
+
}
|
|
1161
|
+
}), [["__scopeId", "data-v-da022ee0"]]);
|
|
1162
|
+
//#endregion
|
|
1163
|
+
//#region src/components/ItemTile/Index.vue
|
|
1164
|
+
const _hoisted_1$22 = ["data-rarity"];
|
|
1165
|
+
const _hoisted_2$17 = { class: "face" };
|
|
1166
|
+
const _hoisted_3$15 = {
|
|
1167
|
+
class: "count",
|
|
1168
|
+
"aria-hidden": "true"
|
|
1169
|
+
};
|
|
1170
|
+
var Index_default$20 = /*#__PURE__*/ export_helper_default(/* @__PURE__ */ defineComponent({
|
|
1171
|
+
__name: "Index",
|
|
1172
|
+
props: {
|
|
1173
|
+
count: {},
|
|
1174
|
+
rarity: {}
|
|
1175
|
+
},
|
|
1176
|
+
setup(__props) {
|
|
1177
|
+
return (_ctx, _cache) => {
|
|
1178
|
+
return openBlock(), createElementBlock(Fragment, null, [createCommentVNode(" An item's tile as the game's reward lists draw it, filling the box its parent gives it: the rarity's gradient lit\n from the foot, and the count in white on a darker strip across the bottom 24%, the corners rounded 7%. Measured on\n the wiki's Adventurer Handbook screenshot and the Reputation clip, which agree on the three, four and five star\n tiles and differ only in the count's size, which a screen sets as `--count-size` since it does not follow the\n tile's: the handbook's counts stand as high on its 188 tiles as on its 141. A one or two star tile is not measured\n yet and draws bare. The item's own art is the game's and does not ship "), createElementVNode("span", {
|
|
1179
|
+
class: "item-tile",
|
|
1180
|
+
"data-rarity": __props.rarity
|
|
1181
|
+
}, [createElementVNode("span", _hoisted_2$17, [createElementVNode("span", _hoisted_3$15, toDisplayString(__props.count), 1)])], 8, _hoisted_1$22)], 2112);
|
|
1182
|
+
};
|
|
1183
|
+
}
|
|
1184
|
+
}), [["__scopeId", "data-v-8cf70011"]]);
|
|
1185
|
+
//#endregion
|
|
1186
|
+
//#region src/models/ExpeditionActionKind.ts
|
|
1187
|
+
let ExpeditionActionKind = /* @__PURE__ */ function(ExpeditionActionKind) {
|
|
1188
|
+
ExpeditionActionKind["Claim"] = "claim";
|
|
1189
|
+
ExpeditionActionKind["Recall"] = "recall";
|
|
1190
|
+
ExpeditionActionKind["Send"] = "send";
|
|
1191
|
+
return ExpeditionActionKind;
|
|
1192
|
+
}({});
|
|
1193
|
+
//#endregion
|
|
1194
|
+
//#region src/components/ExpeditionScreen/Index.vue
|
|
1195
|
+
const _hoisted_1$21 = { class: "expedition-screen" };
|
|
1196
|
+
const _hoisted_2$16 = { class: "limit" };
|
|
1197
|
+
const _hoisted_3$14 = ["aria-label"];
|
|
1198
|
+
const _hoisted_4$13 = { class: "nations" };
|
|
1199
|
+
const _hoisted_5$12 = ["aria-pressed", "onClick"];
|
|
1200
|
+
const _hoisted_6$11 = {
|
|
1201
|
+
key: 0,
|
|
1202
|
+
class: "alert",
|
|
1203
|
+
"aria-hidden": "true"
|
|
1204
|
+
};
|
|
1205
|
+
const _hoisted_7$11 = { class: "pins" };
|
|
1206
|
+
const _hoisted_8$8 = [
|
|
1207
|
+
"aria-label",
|
|
1208
|
+
"aria-pressed",
|
|
1209
|
+
"onClick"
|
|
1210
|
+
];
|
|
1211
|
+
const _hoisted_9$7 = {
|
|
1212
|
+
key: 0,
|
|
1213
|
+
class: "away"
|
|
1214
|
+
};
|
|
1215
|
+
const _hoisted_10$7 = {
|
|
1216
|
+
key: 0,
|
|
1217
|
+
class: "detail"
|
|
1218
|
+
};
|
|
1219
|
+
const _hoisted_11$7 = { class: "detail-name" };
|
|
1220
|
+
const _hoisted_12$7 = { class: "description" };
|
|
1221
|
+
const _hoisted_13$7 = { class: "rewards-label" };
|
|
1222
|
+
const _hoisted_14$7 = { class: "rewards" };
|
|
1223
|
+
const _hoisted_15$6 = {
|
|
1224
|
+
key: 0,
|
|
1225
|
+
class: "status"
|
|
1226
|
+
};
|
|
1227
|
+
const _hoisted_16$6 = {
|
|
1228
|
+
key: 1,
|
|
1229
|
+
class: "durations"
|
|
1230
|
+
};
|
|
1231
|
+
const _hoisted_17$6 = ["aria-pressed", "onClick"];
|
|
1232
|
+
const _hoisted_18$5 = {
|
|
1233
|
+
key: 1,
|
|
1234
|
+
class: "characters"
|
|
1235
|
+
};
|
|
1236
|
+
const _hoisted_19$5 = { class: "characters-title" };
|
|
1237
|
+
const _hoisted_20$5 = ["disabled", "onClick"];
|
|
1238
|
+
const _hoisted_21$5 = { class: "character-name" };
|
|
1239
|
+
const _hoisted_22$4 = { class: "character-bonus" };
|
|
1240
|
+
const _hoisted_23$3 = {
|
|
1241
|
+
key: 0,
|
|
1242
|
+
class: "character-status"
|
|
1243
|
+
};
|
|
1244
|
+
var Index_default$14 = /*#__PURE__*/ export_helper_default(/* @__PURE__ */ defineComponent({
|
|
1245
|
+
__name: "Index",
|
|
1246
|
+
props: /*@__PURE__*/ mergeModels({
|
|
1247
|
+
characters: {},
|
|
1248
|
+
characterTitle: {},
|
|
1249
|
+
closeLabel: {},
|
|
1250
|
+
detail: {},
|
|
1251
|
+
limitLabel: {},
|
|
1252
|
+
nations: {},
|
|
1253
|
+
pins: {},
|
|
1254
|
+
rewardsLabel: {},
|
|
1255
|
+
title: {}
|
|
1256
|
+
}, {
|
|
1257
|
+
"nation": { required: true },
|
|
1258
|
+
"nationModifiers": {},
|
|
1259
|
+
"place": {},
|
|
1260
|
+
"placeModifiers": {},
|
|
1261
|
+
"hours": { default: 0 },
|
|
1262
|
+
"hoursModifiers": {},
|
|
1263
|
+
"picking": {
|
|
1264
|
+
type: Boolean,
|
|
1265
|
+
default: false
|
|
1266
|
+
},
|
|
1267
|
+
"pickingModifiers": {}
|
|
1268
|
+
}),
|
|
1269
|
+
emits: /*@__PURE__*/ mergeModels([
|
|
1270
|
+
"claim",
|
|
1271
|
+
"close",
|
|
1272
|
+
"recall",
|
|
1273
|
+
"send"
|
|
1274
|
+
], [
|
|
1275
|
+
"update:nation",
|
|
1276
|
+
"update:place",
|
|
1277
|
+
"update:hours",
|
|
1278
|
+
"update:picking"
|
|
1279
|
+
]),
|
|
1280
|
+
setup(__props, { emit: __emit }) {
|
|
1281
|
+
const nation = useModel(__props, "nation");
|
|
1282
|
+
const place = useModel(__props, "place");
|
|
1283
|
+
const hours = useModel(__props, "hours");
|
|
1284
|
+
const picking = useModel(__props, "picking");
|
|
1285
|
+
const emit = __emit;
|
|
1286
|
+
const act = () => {
|
|
1287
|
+
if (!__props.detail) return;
|
|
1288
|
+
if (__props.detail.actionKind === "send") picking.value = true;
|
|
1289
|
+
else if (__props.detail.actionKind === "claim") emit("claim", __props.detail.id);
|
|
1290
|
+
else emit("recall", __props.detail.id);
|
|
1291
|
+
};
|
|
1292
|
+
const pick = (characterId) => {
|
|
1293
|
+
if (!__props.detail) return;
|
|
1294
|
+
picking.value = false;
|
|
1295
|
+
emit("send", __props.detail.id, characterId, hours.value);
|
|
1296
|
+
};
|
|
1297
|
+
return (_ctx, _cache) => {
|
|
1298
|
+
return openBlock(), createElementBlock(Fragment, null, [createCommentVNode(" The Expedition screen as the public clip shows it at 1080 high (references/expedition-screen, 26 seconds): the title\n across the head with the expedition limit and the way out, the nations down the left, the places as pins over the\n map, and the picked place's panel on the right with its rewards, its durations and the button that acts on it. The\n map and the panel's picture are the game's art and do not ship, so they are drawn as plain sheets, and the pin's\n brackets as a square outline; the parity compares them against the frame "), createElementVNode("div", _hoisted_1$21, [
|
|
1299
|
+
_cache[6] || (_cache[6] = createElementVNode("div", {
|
|
1300
|
+
class: "map",
|
|
1301
|
+
"aria-hidden": "true"
|
|
1302
|
+
}, null, -1)),
|
|
1303
|
+
createVNode(Index_default$30, null, {
|
|
1304
|
+
default: withCtx(() => [createTextVNode(toDisplayString(__props.title), 1)]),
|
|
1305
|
+
_: 1
|
|
1306
|
+
}),
|
|
1307
|
+
createElementVNode("p", _hoisted_2$16, toDisplayString(__props.limitLabel), 1),
|
|
1308
|
+
createElementVNode("button", {
|
|
1309
|
+
class: "close",
|
|
1310
|
+
"aria-label": __props.closeLabel,
|
|
1311
|
+
type: "button",
|
|
1312
|
+
onClick: _cache[0] || (_cache[0] = ($event) => emit("close"))
|
|
1313
|
+
}, "×", 8, _hoisted_3$14),
|
|
1314
|
+
createElementVNode("ul", _hoisted_4$13, [(openBlock(true), createElementBlock(Fragment, null, renderList(__props.nations, ({ hasAlert, name }) => {
|
|
1315
|
+
return openBlock(), createElementBlock("li", { key: name }, [createElementVNode("button", {
|
|
1316
|
+
class: "nation",
|
|
1317
|
+
"aria-pressed": name === nation.value,
|
|
1318
|
+
type: "button",
|
|
1319
|
+
onClick: ($event) => nation.value = name
|
|
1320
|
+
}, [
|
|
1321
|
+
_cache[2] || (_cache[2] = createElementVNode("span", {
|
|
1322
|
+
class: "marker",
|
|
1323
|
+
"aria-hidden": "true"
|
|
1324
|
+
}, null, -1)),
|
|
1325
|
+
createElementVNode("span", null, toDisplayString(name), 1),
|
|
1326
|
+
hasAlert ? (openBlock(), createElementBlock("span", _hoisted_6$11, "!")) : createCommentVNode("v-if", true)
|
|
1327
|
+
], 8, _hoisted_5$12)]);
|
|
1328
|
+
}), 128))]),
|
|
1329
|
+
createElementVNode("ul", _hoisted_7$11, [(openBlock(true), createElementBlock(Fragment, null, renderList(__props.pins, ({ awayLabel, id, label, x, y }) => {
|
|
1330
|
+
return openBlock(), createElementBlock("li", {
|
|
1331
|
+
key: id,
|
|
1332
|
+
style: normalizeStyle({
|
|
1333
|
+
"--x": x,
|
|
1334
|
+
"--y": y
|
|
1335
|
+
})
|
|
1336
|
+
}, [createElementVNode("button", {
|
|
1337
|
+
class: "pin",
|
|
1338
|
+
"aria-label": label,
|
|
1339
|
+
"aria-pressed": id === place.value,
|
|
1340
|
+
type: "button",
|
|
1341
|
+
onClick: ($event) => place.value = id
|
|
1342
|
+
}, [..._cache[3] || (_cache[3] = [createElementVNode("span", { "aria-hidden": "true" }, "+", -1)])], 8, _hoisted_8$8), awayLabel ? (openBlock(), createElementBlock("span", _hoisted_9$7, toDisplayString(awayLabel), 1)) : createCommentVNode("v-if", true)], 4);
|
|
1343
|
+
}), 128))]),
|
|
1344
|
+
__props.detail ? (openBlock(), createElementBlock("section", _hoisted_10$7, [
|
|
1345
|
+
createElementVNode("p", _hoisted_11$7, toDisplayString(__props.detail.name), 1),
|
|
1346
|
+
_cache[4] || (_cache[4] = createElementVNode("div", {
|
|
1347
|
+
class: "picture",
|
|
1348
|
+
"aria-hidden": "true"
|
|
1349
|
+
}, null, -1)),
|
|
1350
|
+
createElementVNode("p", _hoisted_12$7, toDisplayString(__props.detail.description), 1),
|
|
1351
|
+
createElementVNode("p", _hoisted_13$7, toDisplayString(__props.rewardsLabel), 1),
|
|
1352
|
+
createElementVNode("ul", _hoisted_14$7, [(openBlock(true), createElementBlock(Fragment, null, renderList(__props.detail.rewards, ({ countLabel, label, rarity }, index) => {
|
|
1353
|
+
return openBlock(), createElementBlock("li", { key: index }, [createVNode(Index_default$20, {
|
|
1354
|
+
class: "item",
|
|
1355
|
+
"aria-label": label,
|
|
1356
|
+
count: countLabel,
|
|
1357
|
+
rarity,
|
|
1358
|
+
role: "img"
|
|
1359
|
+
}, null, 8, [
|
|
1360
|
+
"aria-label",
|
|
1361
|
+
"count",
|
|
1362
|
+
"rarity"
|
|
1363
|
+
])]);
|
|
1364
|
+
}), 128))]),
|
|
1365
|
+
__props.detail.statusLabel ? (openBlock(), createElementBlock("p", _hoisted_15$6, toDisplayString(__props.detail.statusLabel), 1)) : (openBlock(), createElementBlock("ul", _hoisted_16$6, [(openBlock(true), createElementBlock(Fragment, null, renderList(__props.detail.durations, (duration) => {
|
|
1366
|
+
return openBlock(), createElementBlock("li", { key: duration }, [createElementVNode("button", {
|
|
1367
|
+
"aria-pressed": duration === hours.value,
|
|
1368
|
+
type: "button",
|
|
1369
|
+
onClick: ($event) => hours.value = duration
|
|
1370
|
+
}, toDisplayString(duration) + "h", 9, _hoisted_17$6)]);
|
|
1371
|
+
}), 128))]))
|
|
1372
|
+
])) : createCommentVNode("v-if", true),
|
|
1373
|
+
picking.value && __props.detail ? (openBlock(), createElementBlock("section", _hoisted_18$5, [createElementVNode("p", _hoisted_19$5, toDisplayString(__props.characterTitle), 1), createElementVNode("ul", null, [(openBlock(true), createElementBlock(Fragment, null, renderList(__props.characters, ({ bonusLabel, id, label, statusLabel }) => {
|
|
1374
|
+
return openBlock(), createElementBlock("li", { key: id }, [createElementVNode("button", {
|
|
1375
|
+
class: "character",
|
|
1376
|
+
disabled: statusLabel !== "",
|
|
1377
|
+
type: "button",
|
|
1378
|
+
onClick: ($event) => pick(id)
|
|
1379
|
+
}, [
|
|
1380
|
+
createElementVNode("span", _hoisted_21$5, toDisplayString(label), 1),
|
|
1381
|
+
createElementVNode("span", _hoisted_22$4, toDisplayString(bonusLabel), 1),
|
|
1382
|
+
statusLabel ? (openBlock(), createElementBlock("span", _hoisted_23$3, toDisplayString(statusLabel), 1)) : createCommentVNode("v-if", true)
|
|
1383
|
+
], 8, _hoisted_20$5)]);
|
|
1384
|
+
}), 128))])])) : createCommentVNode("v-if", true),
|
|
1385
|
+
__props.detail ? (openBlock(), createElementBlock("button", {
|
|
1386
|
+
key: 2,
|
|
1387
|
+
class: "action",
|
|
1388
|
+
type: "button",
|
|
1389
|
+
onClick: _cache[1] || (_cache[1] = ($event) => act())
|
|
1390
|
+
}, [_cache[5] || (_cache[5] = createElementVNode("span", {
|
|
1391
|
+
class: "ring",
|
|
1392
|
+
"aria-hidden": "true"
|
|
1393
|
+
}, null, -1)), createElementVNode("span", null, toDisplayString(__props.detail.actionLabel), 1)])) : createCommentVNode("v-if", true)
|
|
1394
|
+
])], 2112);
|
|
1395
|
+
};
|
|
1396
|
+
}
|
|
1397
|
+
}), [["__scopeId", "data-v-ee73652f"]]);
|
|
1398
|
+
//#endregion
|
|
1399
|
+
//#region src/components/TwoColumnScreen/Index.vue
|
|
1400
|
+
const _hoisted_1$20 = { class: "two-column-screen" };
|
|
1401
|
+
var Index_default$34 = /*#__PURE__*/ export_helper_default(/* @__PURE__ */ defineComponent({
|
|
1402
|
+
__name: "Index",
|
|
1403
|
+
setup(__props) {
|
|
1404
|
+
return (_ctx, _cache) => {
|
|
1405
|
+
return openBlock(), createElementBlock(Fragment, null, [createCommentVNode(" A screen drawn as two columns under a head row, its head spanning both. A screen of this shape takes its root from\n here, so a class on it names the screen and never restates the layout "), createElementVNode("div", _hoisted_1$20, [renderSlot(_ctx.$slots, "default", {}, void 0, true)])], 2112);
|
|
1406
|
+
};
|
|
1407
|
+
}
|
|
1408
|
+
}), [["__scopeId", "data-v-d9df7bbc"]]);
|
|
1409
|
+
//#endregion
|
|
1410
|
+
//#region src/models/ForgeQueueState.ts
|
|
1411
|
+
let ForgeQueueState = /* @__PURE__ */ function(ForgeQueueState) {
|
|
1412
|
+
ForgeQueueState["Complete"] = "Complete";
|
|
1413
|
+
ForgeQueueState["Forging"] = "Forging";
|
|
1414
|
+
ForgeQueueState["Idle"] = "Idle";
|
|
1415
|
+
ForgeQueueState["Locked"] = "Locked";
|
|
1416
|
+
return ForgeQueueState;
|
|
1417
|
+
}({});
|
|
1418
|
+
//#endregion
|
|
1419
|
+
//#region src/models/ForgeTab.ts
|
|
1420
|
+
let ForgeTab = /* @__PURE__ */ function(ForgeTab) {
|
|
1421
|
+
ForgeTab["Materials"] = "Materials";
|
|
1422
|
+
ForgeTab["Queues"] = "Queues";
|
|
1423
|
+
return ForgeTab;
|
|
1424
|
+
}({});
|
|
1425
|
+
//#endregion
|
|
1426
|
+
//#region src/components/ForgeScreen/Index.vue
|
|
1427
|
+
const _hoisted_1$19 = { class: "head" };
|
|
1428
|
+
const _hoisted_2$15 = {
|
|
1429
|
+
class: "title",
|
|
1430
|
+
role: "heading",
|
|
1431
|
+
"aria-level": "1"
|
|
1432
|
+
};
|
|
1433
|
+
const _hoisted_3$13 = { class: "tabs" };
|
|
1434
|
+
const _hoisted_4$12 = ["aria-pressed"];
|
|
1435
|
+
const _hoisted_5$11 = ["aria-pressed"];
|
|
1436
|
+
const _hoisted_6$10 = { class: "coins" };
|
|
1437
|
+
const _hoisted_7$10 = ["aria-label"];
|
|
1438
|
+
const _hoisted_8$7 = { class: "recipes" };
|
|
1439
|
+
const _hoisted_9$6 = [
|
|
1440
|
+
"aria-pressed",
|
|
1441
|
+
"disabled",
|
|
1442
|
+
"onClick"
|
|
1443
|
+
];
|
|
1444
|
+
const _hoisted_10$6 = { class: "recipe-name" };
|
|
1445
|
+
const _hoisted_11$6 = { class: "recipe-time" };
|
|
1446
|
+
const _hoisted_12$6 = { class: "detail" };
|
|
1447
|
+
const _hoisted_13$6 = ["aria-label", "max"];
|
|
1448
|
+
const _hoisted_14$6 = { class: "total-time" };
|
|
1449
|
+
const _hoisted_15$5 = { class: "item-icon" };
|
|
1450
|
+
const _hoisted_16$5 = { class: "item-count" };
|
|
1451
|
+
const _hoisted_17$5 = { class: "amount-label" };
|
|
1452
|
+
const _hoisted_18$4 = { class: "amount-end amount-max" };
|
|
1453
|
+
const _hoisted_19$4 = { class: "materials-box" };
|
|
1454
|
+
const _hoisted_20$4 = { class: "materials-head" };
|
|
1455
|
+
const _hoisted_21$4 = { class: "materials-title" };
|
|
1456
|
+
const _hoisted_22$3 = { class: "support-title" };
|
|
1457
|
+
const _hoisted_23$2 = { class: "required" };
|
|
1458
|
+
const _hoisted_24$1 = {
|
|
1459
|
+
key: 1,
|
|
1460
|
+
class: "refusal"
|
|
1461
|
+
};
|
|
1462
|
+
const _hoisted_25$1 = {
|
|
1463
|
+
key: 1,
|
|
1464
|
+
class: "queues"
|
|
1465
|
+
};
|
|
1466
|
+
const _hoisted_26$1 = ["data-state"];
|
|
1467
|
+
const _hoisted_27$1 = { class: "queue-name" };
|
|
1468
|
+
const _hoisted_28$1 = { class: "queue-progress" };
|
|
1469
|
+
const _hoisted_29$1 = { class: "queue-time" };
|
|
1470
|
+
const _hoisted_30$1 = ["onClick"];
|
|
1471
|
+
var Index_default$15 = /*#__PURE__*/ export_helper_default(/* @__PURE__ */ defineComponent({
|
|
1472
|
+
__name: "Index",
|
|
1473
|
+
props: /*@__PURE__*/ mergeModels({
|
|
1474
|
+
amountLabel: {},
|
|
1475
|
+
amountMaximum: {},
|
|
1476
|
+
closeLabel: {},
|
|
1477
|
+
coins: {},
|
|
1478
|
+
materialsBoxLabel: {},
|
|
1479
|
+
materialsLabel: {},
|
|
1480
|
+
obtainLabel: {},
|
|
1481
|
+
queues: {},
|
|
1482
|
+
queuesLabel: {},
|
|
1483
|
+
recipes: {},
|
|
1484
|
+
refusalLabel: {},
|
|
1485
|
+
requiredCoins: {},
|
|
1486
|
+
startLabel: {},
|
|
1487
|
+
supportLabel: {},
|
|
1488
|
+
title: {},
|
|
1489
|
+
totalTimeLabel: {},
|
|
1490
|
+
yieldCount: {}
|
|
1491
|
+
}, {
|
|
1492
|
+
"amount": { default: 1 },
|
|
1493
|
+
"amountModifiers": {},
|
|
1494
|
+
"recipeId": { default: 0 },
|
|
1495
|
+
"recipeIdModifiers": {},
|
|
1496
|
+
"tab": { default: "Materials" },
|
|
1497
|
+
"tabModifiers": {}
|
|
1498
|
+
}),
|
|
1499
|
+
emits: /*@__PURE__*/ mergeModels([
|
|
1500
|
+
"close",
|
|
1501
|
+
"obtain",
|
|
1502
|
+
"start"
|
|
1503
|
+
], [
|
|
1504
|
+
"update:amount",
|
|
1505
|
+
"update:recipeId",
|
|
1506
|
+
"update:tab"
|
|
1507
|
+
]),
|
|
1508
|
+
setup(__props, { emit: __emit }) {
|
|
1509
|
+
const amount = useModel(__props, "amount");
|
|
1510
|
+
const recipeId = useModel(__props, "recipeId");
|
|
1511
|
+
const tab = useModel(__props, "tab");
|
|
1512
|
+
const emit = __emit;
|
|
1513
|
+
return (_ctx, _cache) => {
|
|
1514
|
+
return openBlock(), createElementBlock(Fragment, null, [createCommentVNode(" The forge, the blacksmith's screen: its two tabs across the head with the coins and the way out, the recipes on the\n left with the chosen one's amount and cost beside them, or the queues each holding an order that forges over real\n time and is obtained when it is done. Provisional: every place, size and colour here waits on the forge screen's\n passes against the public clip of the Wagner forge (references/forge-screen) and the owed order-queue recording "), createVNode(Index_default$34, { class: "forge-screen" }, {
|
|
1515
|
+
default: withCtx(() => [createElementVNode("header", _hoisted_1$19, [
|
|
1516
|
+
createElementVNode("p", _hoisted_2$15, toDisplayString(__props.title), 1),
|
|
1517
|
+
createElementVNode("div", _hoisted_3$13, [createElementVNode("button", {
|
|
1518
|
+
class: "tab",
|
|
1519
|
+
"aria-pressed": tab.value === unref(ForgeTab).Materials,
|
|
1520
|
+
type: "button",
|
|
1521
|
+
onClick: _cache[0] || (_cache[0] = ($event) => tab.value = unref(ForgeTab).Materials)
|
|
1522
|
+
}, toDisplayString(__props.materialsLabel), 9, _hoisted_4$12), createElementVNode("button", {
|
|
1523
|
+
class: "tab",
|
|
1524
|
+
"aria-pressed": tab.value === unref(ForgeTab).Queues,
|
|
1525
|
+
type: "button",
|
|
1526
|
+
onClick: _cache[1] || (_cache[1] = ($event) => tab.value = unref(ForgeTab).Queues)
|
|
1527
|
+
}, toDisplayString(__props.queuesLabel), 9, _hoisted_5$11)]),
|
|
1528
|
+
createElementVNode("p", _hoisted_6$10, toDisplayString(__props.coins), 1),
|
|
1529
|
+
createElementVNode("button", {
|
|
1530
|
+
class: "close",
|
|
1531
|
+
"aria-label": __props.closeLabel,
|
|
1532
|
+
type: "button",
|
|
1533
|
+
onClick: _cache[2] || (_cache[2] = ($event) => emit("close"))
|
|
1534
|
+
}, "×", 8, _hoisted_7$10)
|
|
1535
|
+
]), tab.value === unref(ForgeTab).Materials ? (openBlock(), createElementBlock(Fragment, { key: 0 }, [createElementVNode("ul", _hoisted_8$7, [(openBlock(true), createElementBlock(Fragment, null, renderList(__props.recipes, (recipe) => {
|
|
1536
|
+
return openBlock(), createElementBlock("li", { key: recipe.id }, [createElementVNode("button", {
|
|
1537
|
+
class: "recipe",
|
|
1538
|
+
"aria-pressed": recipe.id === recipeId.value,
|
|
1539
|
+
disabled: !recipe.isOpen,
|
|
1540
|
+
type: "button",
|
|
1541
|
+
onClick: ($event) => recipeId.value = recipe.id
|
|
1542
|
+
}, [
|
|
1543
|
+
_cache[5] || (_cache[5] = createElementVNode("span", {
|
|
1544
|
+
class: "recipe-tile",
|
|
1545
|
+
"aria-hidden": "true"
|
|
1546
|
+
}, null, -1)),
|
|
1547
|
+
createElementVNode("span", _hoisted_10$6, toDisplayString(recipe.name), 1),
|
|
1548
|
+
createElementVNode("span", _hoisted_11$6, toDisplayString(recipe.forgeTimeLabel), 1)
|
|
1549
|
+
], 8, _hoisted_9$6)]);
|
|
1550
|
+
}), 128))]), createElementVNode("div", _hoisted_12$6, [
|
|
1551
|
+
withDirectives(createElementVNode("input", {
|
|
1552
|
+
"onUpdate:modelValue": _cache[3] || (_cache[3] = ($event) => amount.value = $event),
|
|
1553
|
+
"aria-label": __props.amountLabel,
|
|
1554
|
+
class: "amount",
|
|
1555
|
+
max: __props.amountMaximum,
|
|
1556
|
+
min: "1",
|
|
1557
|
+
type: "range"
|
|
1558
|
+
}, null, 8, _hoisted_13$6), [[
|
|
1559
|
+
vModelText,
|
|
1560
|
+
amount.value,
|
|
1561
|
+
void 0,
|
|
1562
|
+
{ number: true }
|
|
1563
|
+
]]),
|
|
1564
|
+
createElementVNode("p", _hoisted_14$6, toDisplayString(__props.totalTimeLabel), 1),
|
|
1565
|
+
createElementVNode("div", _hoisted_15$5, [createElementVNode("span", _hoisted_16$5, toDisplayString(__props.yieldCount), 1)]),
|
|
1566
|
+
createElementVNode("p", _hoisted_17$5, toDisplayString(__props.amountLabel), 1),
|
|
1567
|
+
_cache[10] || (_cache[10] = createElementVNode("span", {
|
|
1568
|
+
"aria-hidden": "true",
|
|
1569
|
+
class: "amount-step amount-minus"
|
|
1570
|
+
}, "−", -1)),
|
|
1571
|
+
_cache[11] || (_cache[11] = createElementVNode("span", { class: "amount-end amount-min" }, "1", -1)),
|
|
1572
|
+
createElementVNode("span", _hoisted_18$4, toDisplayString(__props.amountMaximum), 1),
|
|
1573
|
+
_cache[12] || (_cache[12] = createElementVNode("span", {
|
|
1574
|
+
"aria-hidden": "true",
|
|
1575
|
+
class: "amount-step amount-plus"
|
|
1576
|
+
}, "+", -1)),
|
|
1577
|
+
createElementVNode("section", _hoisted_19$4, [
|
|
1578
|
+
createElementVNode("header", _hoisted_20$4, [createElementVNode("p", _hoisted_21$4, toDisplayString(__props.materialsBoxLabel), 1), createElementVNode("p", _hoisted_22$3, toDisplayString(__props.supportLabel), 1)]),
|
|
1579
|
+
_cache[6] || (_cache[6] = createElementVNode("span", { class: "slot slot-first" }, null, -1)),
|
|
1580
|
+
_cache[7] || (_cache[7] = createElementVNode("span", { class: "slot slot-second" }, null, -1)),
|
|
1581
|
+
_cache[8] || (_cache[8] = createElementVNode("span", { class: "slot slot-third" }, null, -1)),
|
|
1582
|
+
_cache[9] || (_cache[9] = createElementVNode("span", { class: "support-portrait" }, null, -1))
|
|
1583
|
+
]),
|
|
1584
|
+
createElementVNode("p", _hoisted_23$2, toDisplayString(__props.requiredCoins), 1),
|
|
1585
|
+
!__props.refusalLabel ? (openBlock(), createElementBlock("button", {
|
|
1586
|
+
key: 0,
|
|
1587
|
+
class: "start",
|
|
1588
|
+
type: "button",
|
|
1589
|
+
onClick: _cache[4] || (_cache[4] = ($event) => emit("start"))
|
|
1590
|
+
}, toDisplayString(__props.startLabel), 1)) : (openBlock(), createElementBlock("p", _hoisted_24$1, toDisplayString(__props.refusalLabel), 1))
|
|
1591
|
+
])], 64)) : (openBlock(), createElementBlock("ul", _hoisted_25$1, [(openBlock(true), createElementBlock(Fragment, null, renderList(__props.queues, (queue) => {
|
|
1592
|
+
return openBlock(), createElementBlock("li", {
|
|
1593
|
+
key: queue.id,
|
|
1594
|
+
class: "queue",
|
|
1595
|
+
"data-state": queue.state
|
|
1596
|
+
}, [
|
|
1597
|
+
createElementVNode("span", _hoisted_27$1, toDisplayString(queue.name), 1),
|
|
1598
|
+
createElementVNode("span", _hoisted_28$1, toDisplayString(queue.progressLabel), 1),
|
|
1599
|
+
createElementVNode("span", _hoisted_29$1, toDisplayString(queue.timeLabel), 1),
|
|
1600
|
+
queue.state === unref(ForgeQueueState).Complete ? (openBlock(), createElementBlock("button", {
|
|
1601
|
+
key: 0,
|
|
1602
|
+
class: "obtain",
|
|
1603
|
+
type: "button",
|
|
1604
|
+
onClick: ($event) => emit("obtain", queue.id)
|
|
1605
|
+
}, toDisplayString(__props.obtainLabel), 9, _hoisted_30$1)) : createCommentVNode("v-if", true)
|
|
1606
|
+
], 8, _hoisted_26$1);
|
|
1607
|
+
}), 128))]))]),
|
|
1608
|
+
_: 1
|
|
1609
|
+
})], 2112);
|
|
1610
|
+
};
|
|
1611
|
+
}
|
|
1612
|
+
}), [["__scopeId", "data-v-4426e963"]]);
|
|
1613
|
+
//#endregion
|
|
1614
|
+
//#region src/services/toCanvasRect.ts
|
|
1615
|
+
const toPair = ([x = 0, y = 0]) => [x, y];
|
|
1616
|
+
const toCanvasRect = ({ anchorMax, anchorMin, pivot, position, size }) => ({
|
|
1617
|
+
anchorMax: toPair(anchorMax),
|
|
1618
|
+
anchorMin: toPair(anchorMin),
|
|
1619
|
+
pivot: toPair(pivot),
|
|
1620
|
+
position: toPair(position),
|
|
1621
|
+
size: toPair(size)
|
|
1622
|
+
});
|
|
1623
|
+
//#endregion
|
|
1624
|
+
//#region src/services/computeRectOffsets.ts
|
|
1625
|
+
const computeRectOffsets = ({ pivot, position, size }) => {
|
|
1626
|
+
const offsetMin = [position[0] - size[0] * pivot[0], position[1] - size[1] * pivot[1]];
|
|
1627
|
+
return {
|
|
1628
|
+
offsetMax: [offsetMin[0] + size[0], offsetMin[1] + size[1]],
|
|
1629
|
+
offsetMin
|
|
1630
|
+
};
|
|
1631
|
+
};
|
|
1632
|
+
//#endregion
|
|
1633
|
+
//#region src/services/toCanvasRectStyle.ts
|
|
1634
|
+
const toAxis = (anchorMin, anchorMax, offsetMin, size, span, start) => [`calc(${start} + ${anchorMin} * ${span} + ${offsetMin} * var(--canvas-unit))`, `calc(${anchorMax - anchorMin} * ${span} + ${size} * var(--canvas-unit))`];
|
|
1635
|
+
const toCanvasRectStyle = (rect, isOnCanvas = false) => {
|
|
1636
|
+
const { anchorMax, anchorMin, size } = rect;
|
|
1637
|
+
const { offsetMin } = computeRectOffsets(rect);
|
|
1638
|
+
const [left, width] = toAxis(anchorMin[0], anchorMax[0], offsetMin[0], size[0], isOnCanvas ? "(100% - 2 * var(--canvas-inset))" : "100%", isOnCanvas ? "var(--canvas-inset)" : "0px");
|
|
1639
|
+
const [bottom, height] = toAxis(anchorMin[1], anchorMax[1], offsetMin[1], size[1], "100%", "0px");
|
|
1640
|
+
return {
|
|
1641
|
+
bottom,
|
|
1642
|
+
height,
|
|
1643
|
+
left,
|
|
1644
|
+
position: "absolute",
|
|
1645
|
+
width
|
|
1646
|
+
};
|
|
1647
|
+
};
|
|
1648
|
+
//#endregion
|
|
1649
|
+
//#region src/components/GameRect/Index.vue
|
|
1650
|
+
const _sfc_main = /*@__PURE__*/ defineComponent({
|
|
1651
|
+
__name: "Index",
|
|
1652
|
+
props: {
|
|
1653
|
+
parent: { default: () => GAME_CANVAS_RECT },
|
|
1654
|
+
rect: {}
|
|
1655
|
+
},
|
|
1656
|
+
setup(__props) {
|
|
1657
|
+
const canvasRect = computed(() => toCanvasRect(__props.rect));
|
|
1658
|
+
const style = computed(() => {
|
|
1659
|
+
const [pivotX, pivotY] = canvasRect.value.pivot;
|
|
1660
|
+
return {
|
|
1661
|
+
...toCanvasRectStyle(canvasRect.value, __props.parent === GAME_CANVAS_RECT),
|
|
1662
|
+
scale: __props.rect.scale?.join(" "),
|
|
1663
|
+
transformOrigin: `${pivotX * 100}% ${(1 - pivotY) * 100}%`
|
|
1664
|
+
};
|
|
1665
|
+
});
|
|
1666
|
+
return (_ctx, _cache) => {
|
|
1667
|
+
return openBlock(), createElementBlock("div", { style: normalizeStyle(style.value) }, [renderSlot(_ctx.$slots, "default", { rect: canvasRect.value })], 4);
|
|
1668
|
+
};
|
|
1669
|
+
}
|
|
1670
|
+
});
|
|
1671
|
+
//#endregion
|
|
1672
|
+
//#region src/components/GameScreen/Index.vue
|
|
1673
|
+
const _hoisted_1$18 = ["data-interaction-state"];
|
|
1674
|
+
var Index_default$17 = /*#__PURE__*/ export_helper_default(/* @__PURE__ */ defineComponent({
|
|
1675
|
+
__name: "Index",
|
|
1676
|
+
props: {
|
|
1677
|
+
interactionState: {},
|
|
1678
|
+
isTouch: { type: Boolean }
|
|
1679
|
+
},
|
|
1680
|
+
setup(__props) {
|
|
1681
|
+
useCssVars((_ctx) => ({
|
|
1682
|
+
"b3ebfd60": unref(GAME_CANVAS_INSET),
|
|
1683
|
+
"v687962d1": unref(GAME_CANVAS_UNIT),
|
|
1684
|
+
"v440f997e": unref(GAME_UNIT),
|
|
1685
|
+
"v3dfd0b4f": unref(GAME_WHITE),
|
|
1686
|
+
"v603eb8d0": unref(GAME_CURSOR),
|
|
1687
|
+
"v62ea67cc": unref(GAME_FONT_FAMILY),
|
|
1688
|
+
"v7e9afa3a": unref(MOBILE_INTERFACE_SCALE)
|
|
1689
|
+
}));
|
|
1690
|
+
const style = computed(() => __props.isTouch === void 0 ? void 0 : { "--interface-scale": __props.isTouch ? MOBILE_INTERFACE_SCALE : 1 });
|
|
1691
|
+
return (_ctx, _cache) => {
|
|
1692
|
+
return openBlock(), createElementBlock(Fragment, null, [createCommentVNode(" The root every screen of the game's is drawn in: the window's own container, whose `--unit` is a pixel of the\n Game's 1920 by 1080 screen, `--canvas-unit` a unit of its interface's 1600 by 900 canvas, both times\n `--interface-scale`, the mobile client's on a touch screen, `--canvas-inset` how far the canvas stands in from\n Each side and `--white` the white its opening is drawn on, in the game's face and pointer. Each resolves where a\n Child uses it, against this container "), createElementVNode("div", {
|
|
1693
|
+
class: "game-screen",
|
|
1694
|
+
"data-interaction-state": __props.interactionState,
|
|
1695
|
+
style: normalizeStyle(style.value)
|
|
1696
|
+
}, [renderSlot(_ctx.$slots, "default", {}, void 0, true)], 12, _hoisted_1$18)], 2112);
|
|
1697
|
+
};
|
|
1698
|
+
}
|
|
1699
|
+
}), [["__scopeId", "data-v-b0f87b0b"]]);
|
|
1700
|
+
//#endregion
|
|
1701
|
+
//#region src/components/InteractionPrompts/Index.vue
|
|
1702
|
+
const _hoisted_1$17 = ["aria-current", "data-kind"];
|
|
1703
|
+
const _hoisted_2$14 = {
|
|
1704
|
+
key: 0,
|
|
1705
|
+
class: "key",
|
|
1706
|
+
"aria-hidden": "true"
|
|
1707
|
+
};
|
|
1708
|
+
const _hoisted_3$12 = ["onClick"];
|
|
1709
|
+
const _hoisted_4$11 = { class: "name" };
|
|
1710
|
+
var Index_default$18 = /*#__PURE__*/ export_helper_default(/* @__PURE__ */ defineComponent({
|
|
1711
|
+
__name: "Index",
|
|
1712
|
+
props: {
|
|
1713
|
+
isTouch: {
|
|
1714
|
+
type: Boolean,
|
|
1715
|
+
default: false
|
|
1716
|
+
},
|
|
1717
|
+
prompts: {},
|
|
1718
|
+
selectedId: {}
|
|
1719
|
+
},
|
|
1720
|
+
emits: ["press"],
|
|
1721
|
+
setup(__props, { emit: __emit }) {
|
|
1722
|
+
useCssVars((_ctx) => ({ "v0b0e8f3c": selectionDuration }));
|
|
1723
|
+
const emit = __emit;
|
|
1724
|
+
const selectionDuration = `50ms`;
|
|
1725
|
+
return (_ctx, _cache) => {
|
|
1726
|
+
return openBlock(), createElementBlock(Fragment, null, [createCommentVNode(" The prompts beside the character: a row for each thing in reach, its kind's icon before its name in a pill, and the\n Key's cap before the row F acts on, with the pointer that leads from it into the pill. Measured off the English\n PC client's three-row pickup at 1080 high: each pill 63 high on a 72 pitch, its left edge 59 past the cap's, the\n cap 40 wide and 33 high, the icon 34 across. Each pill is a button of its own, as the game lets a row be pressed\n without the key "), createElementVNode("ul", { class: normalizeClass(["interaction-prompts", { touch: __props.isTouch }]) }, [(openBlock(true), createElementBlock(Fragment, null, renderList(__props.prompts, ({ id, kind, name }) => {
|
|
1727
|
+
return openBlock(), createElementBlock("li", {
|
|
1728
|
+
key: id,
|
|
1729
|
+
class: "prompt",
|
|
1730
|
+
"aria-current": !__props.isTouch && id === __props.selectedId || void 0,
|
|
1731
|
+
"data-kind": kind
|
|
1732
|
+
}, [!__props.isTouch ? (openBlock(), createElementBlock("kbd", _hoisted_2$14, toDisplayString(id === __props.selectedId ? unref("F") : ""), 1)) : createCommentVNode("v-if", true), createElementVNode("button", {
|
|
1733
|
+
class: "pill",
|
|
1734
|
+
type: "button",
|
|
1735
|
+
onClick: ($event) => emit("press", id)
|
|
1736
|
+
}, [_cache[0] || (_cache[0] = createElementVNode("span", {
|
|
1737
|
+
class: "icon",
|
|
1738
|
+
"aria-hidden": "true"
|
|
1739
|
+
}, null, -1)), createElementVNode("span", _hoisted_4$11, toDisplayString(name), 1)], 8, _hoisted_3$12)], 8, _hoisted_1$17);
|
|
1740
|
+
}), 128))], 2)], 2112);
|
|
1741
|
+
};
|
|
1742
|
+
}
|
|
1743
|
+
}), [["__scopeId", "data-v-49059f1b"]]);
|
|
1744
|
+
//#endregion
|
|
1745
|
+
//#region src/models/InventorySort.ts
|
|
1746
|
+
let InventorySort = /* @__PURE__ */ function(InventorySort) {
|
|
1747
|
+
InventorySort["Level"] = "Level";
|
|
1748
|
+
InventorySort["Quality"] = "Quality";
|
|
1749
|
+
return InventorySort;
|
|
1750
|
+
}({});
|
|
1751
|
+
const InventorySorts = Object.values(InventorySort);
|
|
1752
|
+
//#endregion
|
|
1753
|
+
//#region src/components/InventoryScreen/Index.vue
|
|
1754
|
+
const _hoisted_1$16 = { class: "inventory-screen" };
|
|
1755
|
+
const _hoisted_2$13 = ["inert"];
|
|
1756
|
+
const _hoisted_3$11 = {
|
|
1757
|
+
class: "title",
|
|
1758
|
+
role: "heading",
|
|
1759
|
+
"aria-level": "1"
|
|
1760
|
+
};
|
|
1761
|
+
const _hoisted_4$10 = { class: "tabs" };
|
|
1762
|
+
const _hoisted_5$10 = [
|
|
1763
|
+
"aria-label",
|
|
1764
|
+
"aria-pressed",
|
|
1765
|
+
"data-category",
|
|
1766
|
+
"onClick"
|
|
1767
|
+
];
|
|
1768
|
+
const _hoisted_6$9 = { class: "capacity" };
|
|
1769
|
+
const _hoisted_7$9 = ["aria-label"];
|
|
1770
|
+
const _hoisted_8$6 = { class: "grid" };
|
|
1771
|
+
const _hoisted_9$5 = [
|
|
1772
|
+
"aria-label",
|
|
1773
|
+
"aria-pressed",
|
|
1774
|
+
"data-rarity",
|
|
1775
|
+
"data-selected",
|
|
1776
|
+
"onClick"
|
|
1777
|
+
];
|
|
1778
|
+
const _hoisted_10$5 = { class: "caption" };
|
|
1779
|
+
const _hoisted_11$5 = ["data-rarity"];
|
|
1780
|
+
const _hoisted_12$5 = { class: "detail-name" };
|
|
1781
|
+
const _hoisted_13$5 = { class: "detail-caption" };
|
|
1782
|
+
const _hoisted_14$5 = ["aria-label", "aria-pressed"];
|
|
1783
|
+
const _hoisted_15$4 = {
|
|
1784
|
+
key: 1,
|
|
1785
|
+
class: "destroy"
|
|
1786
|
+
};
|
|
1787
|
+
const _hoisted_16$4 = { class: "destroy-tip" };
|
|
1788
|
+
const _hoisted_17$4 = {
|
|
1789
|
+
key: 0,
|
|
1790
|
+
class: "destroy-cannot"
|
|
1791
|
+
};
|
|
1792
|
+
const _hoisted_18$3 = { class: "quick-selects" };
|
|
1793
|
+
const _hoisted_19$3 = ["data-rarity", "onClick"];
|
|
1794
|
+
const _hoisted_20$3 = { class: "destroy-count" };
|
|
1795
|
+
const _hoisted_21$3 = ["disabled"];
|
|
1796
|
+
const _hoisted_22$2 = { class: "sort" };
|
|
1797
|
+
const _hoisted_23$1 = ["value"];
|
|
1798
|
+
const _hoisted_24 = ["aria-label", "data-descending"];
|
|
1799
|
+
const _hoisted_25 = {
|
|
1800
|
+
key: 3,
|
|
1801
|
+
class: "currencies"
|
|
1802
|
+
};
|
|
1803
|
+
const _hoisted_26 = ["data-currency"];
|
|
1804
|
+
const _hoisted_27 = { class: "currency-name" };
|
|
1805
|
+
const _hoisted_28 = {
|
|
1806
|
+
key: 0,
|
|
1807
|
+
class: "top-up"
|
|
1808
|
+
};
|
|
1809
|
+
const _hoisted_29 = ["aria-label"];
|
|
1810
|
+
const _hoisted_30 = { class: "confirm-title" };
|
|
1811
|
+
const _hoisted_31 = { class: "confirm-list-label" };
|
|
1812
|
+
const _hoisted_32 = { class: "confirm-names" };
|
|
1813
|
+
const _hoisted_33 = { class: "confirm-warning" };
|
|
1814
|
+
const _hoisted_34 = {
|
|
1815
|
+
key: 0,
|
|
1816
|
+
class: "confirm-warning"
|
|
1817
|
+
};
|
|
1818
|
+
const _hoisted_35 = { class: "confirm-list-label" };
|
|
1819
|
+
const _hoisted_36 = { class: "confirm-names" };
|
|
1820
|
+
const _hoisted_37 = { class: "confirm-buttons" };
|
|
1821
|
+
const _hoisted_38 = ["disabled"];
|
|
1822
|
+
var Index_default$19 = /*#__PURE__*/ export_helper_default(/* @__PURE__ */ defineComponent({
|
|
1823
|
+
__name: "Index",
|
|
1824
|
+
props: /*@__PURE__*/ mergeModels({
|
|
1825
|
+
backLabel: {},
|
|
1826
|
+
cancelLabel: {},
|
|
1827
|
+
capacity: {},
|
|
1828
|
+
cells: {},
|
|
1829
|
+
currencies: {},
|
|
1830
|
+
destroyButtonLabel: {},
|
|
1831
|
+
destroyCannotLabel: {},
|
|
1832
|
+
destroyConfirmButtonLabel: {},
|
|
1833
|
+
destroyConfirmListLabel: {},
|
|
1834
|
+
destroyConfirmTitle: {},
|
|
1835
|
+
destroyConfirmWarningLabel: {},
|
|
1836
|
+
destroyFullLabel: {},
|
|
1837
|
+
destroyLabel: {},
|
|
1838
|
+
destroyNames: {},
|
|
1839
|
+
destroyRecoveredLabel: {},
|
|
1840
|
+
destroyRecoveredNames: {},
|
|
1841
|
+
destroySelectedLabel: {},
|
|
1842
|
+
destroyTipLabel: {},
|
|
1843
|
+
isConfirming: { type: Boolean },
|
|
1844
|
+
isDestroyFull: { type: Boolean },
|
|
1845
|
+
isDestroying: { type: Boolean },
|
|
1846
|
+
isSortable: { type: Boolean },
|
|
1847
|
+
lockLabel: {},
|
|
1848
|
+
orderLabel: {},
|
|
1849
|
+
quickSelects: {},
|
|
1850
|
+
quickUseLabel: {},
|
|
1851
|
+
sortLabels: {},
|
|
1852
|
+
tabLabels: {},
|
|
1853
|
+
title: {},
|
|
1854
|
+
unlockLabel: {},
|
|
1855
|
+
useLabel: {}
|
|
1856
|
+
}, {
|
|
1857
|
+
"category": { required: true },
|
|
1858
|
+
"categoryModifiers": {},
|
|
1859
|
+
"sort": { required: true },
|
|
1860
|
+
"sortModifiers": {},
|
|
1861
|
+
"isDescending": {
|
|
1862
|
+
type: Boolean,
|
|
1863
|
+
required: true
|
|
1864
|
+
},
|
|
1865
|
+
"isDescendingModifiers": {},
|
|
1866
|
+
"selectedId": { required: true },
|
|
1867
|
+
"selectedIdModifiers": {}
|
|
1868
|
+
}),
|
|
1869
|
+
emits: /*@__PURE__*/ mergeModels([
|
|
1870
|
+
"cancelDestroy",
|
|
1871
|
+
"choose",
|
|
1872
|
+
"close",
|
|
1873
|
+
"confirmDestroy",
|
|
1874
|
+
"destroy",
|
|
1875
|
+
"lock",
|
|
1876
|
+
"quickSelect",
|
|
1877
|
+
"quickUse",
|
|
1878
|
+
"toggleDestroy",
|
|
1879
|
+
"use"
|
|
1880
|
+
], [
|
|
1881
|
+
"update:category",
|
|
1882
|
+
"update:sort",
|
|
1883
|
+
"update:isDescending",
|
|
1884
|
+
"update:selectedId"
|
|
1885
|
+
]),
|
|
1886
|
+
setup(__props, { emit: __emit }) {
|
|
1887
|
+
const category = useModel(__props, "category");
|
|
1888
|
+
const sort = useModel(__props, "sort");
|
|
1889
|
+
const isDescending = useModel(__props, "isDescending");
|
|
1890
|
+
const selectedId = useModel(__props, "selectedId");
|
|
1891
|
+
const emit = __emit;
|
|
1892
|
+
const selectedCell = computed(() => __props.cells.find(({ id }) => id === selectedId.value) ?? __props.cells[0]);
|
|
1893
|
+
const cancelButton = useTemplateRef("cancelButton");
|
|
1894
|
+
const trashButton = useTemplateRef("trashButton");
|
|
1895
|
+
let returnFocus;
|
|
1896
|
+
watch(() => __props.isConfirming, async (isOpen) => {
|
|
1897
|
+
if (isOpen) returnFocus = window.document.activeElement instanceof HTMLElement ? window.document.activeElement : void 0;
|
|
1898
|
+
await nextTick();
|
|
1899
|
+
if (isOpen) cancelButton.value?.focus();
|
|
1900
|
+
else (returnFocus?.isConnected ? returnFocus : trashButton.value)?.focus();
|
|
1901
|
+
});
|
|
1902
|
+
return (_ctx, _cache) => {
|
|
1903
|
+
return openBlock(), createElementBlock(Fragment, null, [createCommentVNode(" The bag, the B key's: its nine tabs across the head in the game's order, the open tab's room beside the way back,\n Its grid of four columns, the entry chosen with its detail panel, and the sort along the foot. Provisional: the\n Tabs' icons and the grid's entries' icons wait on the glyph pass, and the sort, the wallet's place and the\n Panel's stats and footer wait on the bag's other recordings "), createElementVNode("div", _hoisted_1$16, [
|
|
1904
|
+
createElementVNode("div", {
|
|
1905
|
+
class: "bag",
|
|
1906
|
+
inert: __props.isConfirming
|
|
1907
|
+
}, [
|
|
1908
|
+
createElementVNode("p", _hoisted_3$11, toDisplayString(__props.title), 1),
|
|
1909
|
+
createElementVNode("ul", _hoisted_4$10, [(openBlock(true), createElementBlock(Fragment, null, renderList(unref(ItemCategories), (itemCategory) => {
|
|
1910
|
+
return openBlock(), createElementBlock("li", { key: itemCategory }, [createElementVNode("button", {
|
|
1911
|
+
class: "tab",
|
|
1912
|
+
"aria-label": __props.tabLabels[itemCategory],
|
|
1913
|
+
"aria-pressed": itemCategory === category.value,
|
|
1914
|
+
"data-category": itemCategory,
|
|
1915
|
+
type: "button",
|
|
1916
|
+
onClick: ($event) => category.value = itemCategory
|
|
1917
|
+
}, null, 8, _hoisted_5$10)]);
|
|
1918
|
+
}), 128))]),
|
|
1919
|
+
createElementVNode("p", _hoisted_6$9, toDisplayString(__props.capacity), 1),
|
|
1920
|
+
createElementVNode("button", {
|
|
1921
|
+
class: "back",
|
|
1922
|
+
"aria-label": __props.backLabel,
|
|
1923
|
+
type: "button",
|
|
1924
|
+
onClick: _cache[0] || (_cache[0] = ($event) => emit("close"))
|
|
1925
|
+
}, null, 8, _hoisted_7$9),
|
|
1926
|
+
createElementVNode("ul", _hoisted_8$6, [(openBlock(true), createElementBlock(Fragment, null, renderList(__props.cells, (cell) => {
|
|
1927
|
+
return openBlock(), createElementBlock("li", { key: cell.id }, [createElementVNode("button", {
|
|
1928
|
+
class: "cell",
|
|
1929
|
+
"aria-label": cell.name,
|
|
1930
|
+
"aria-pressed": __props.isDestroying ? Boolean(cell.isSelected) : cell.id === selectedCell.value?.id,
|
|
1931
|
+
"data-rarity": cell.rarity,
|
|
1932
|
+
"data-selected": cell.isSelected,
|
|
1933
|
+
type: "button",
|
|
1934
|
+
onClick: ($event) => __props.isDestroying && cell.isDestroyable ? emit("choose", cell.id) : selectedId.value = cell.id
|
|
1935
|
+
}, [createElementVNode("span", _hoisted_10$5, toDisplayString(cell.caption), 1)], 8, _hoisted_9$5)]);
|
|
1936
|
+
}), 128))]),
|
|
1937
|
+
selectedCell.value ? (openBlock(), createElementBlock("section", {
|
|
1938
|
+
key: 0,
|
|
1939
|
+
class: "detail",
|
|
1940
|
+
"data-rarity": selectedCell.value.rarity
|
|
1941
|
+
}, [
|
|
1942
|
+
createElementVNode("p", _hoisted_12$5, toDisplayString(selectedCell.value.name), 1),
|
|
1943
|
+
createElementVNode("p", _hoisted_13$5, toDisplayString(selectedCell.value.caption), 1),
|
|
1944
|
+
selectedCell.value.isUsable && !__props.isDestroying ? (openBlock(), createElementBlock("button", {
|
|
1945
|
+
key: 0,
|
|
1946
|
+
class: "use",
|
|
1947
|
+
type: "button",
|
|
1948
|
+
onClick: _cache[1] || (_cache[1] = ($event) => emit("use", selectedCell.value.id))
|
|
1949
|
+
}, toDisplayString(__props.useLabel), 1)) : createCommentVNode("v-if", true),
|
|
1950
|
+
selectedCell.value.isLockable && !__props.isDestroying ? (openBlock(), createElementBlock("button", {
|
|
1951
|
+
key: 1,
|
|
1952
|
+
class: "lock",
|
|
1953
|
+
type: "button",
|
|
1954
|
+
onClick: _cache[2] || (_cache[2] = ($event) => emit("lock", selectedCell.value.id))
|
|
1955
|
+
}, toDisplayString(selectedCell.value.isLocked ? __props.unlockLabel : __props.lockLabel), 1)) : createCommentVNode("v-if", true)
|
|
1956
|
+
], 8, _hoisted_11$5)) : createCommentVNode("v-if", true),
|
|
1957
|
+
createElementVNode("button", {
|
|
1958
|
+
ref_key: "trashButton",
|
|
1959
|
+
ref: trashButton,
|
|
1960
|
+
class: "trash",
|
|
1961
|
+
"aria-label": __props.destroyLabel,
|
|
1962
|
+
"aria-pressed": __props.isDestroying,
|
|
1963
|
+
type: "button",
|
|
1964
|
+
onClick: _cache[3] || (_cache[3] = ($event) => emit("toggleDestroy"))
|
|
1965
|
+
}, null, 8, _hoisted_14$5),
|
|
1966
|
+
createCommentVNode(" The destroy mode's foot, in place of the sort or the currencies: its opening line, the quick selects by rarity,\n the count of the chosen entries and the Destroy button that opens the dialog. Provisional until the mode is recorded "),
|
|
1967
|
+
__props.isDestroying ? (openBlock(), createElementBlock("section", _hoisted_15$4, [
|
|
1968
|
+
createElementVNode("p", _hoisted_16$4, toDisplayString(__props.destroyTipLabel), 1),
|
|
1969
|
+
selectedCell.value && !selectedCell.value.isDestroyable ? (openBlock(), createElementBlock("p", _hoisted_17$4, toDisplayString(__props.destroyCannotLabel), 1)) : createCommentVNode("v-if", true),
|
|
1970
|
+
createElementVNode("ul", _hoisted_18$3, [(openBlock(true), createElementBlock(Fragment, null, renderList(__props.quickSelects, ({ label, rarity }) => {
|
|
1971
|
+
return openBlock(), createElementBlock("li", { key: rarity }, [createElementVNode("button", {
|
|
1972
|
+
class: "quick-select",
|
|
1973
|
+
"data-rarity": rarity,
|
|
1974
|
+
type: "button",
|
|
1975
|
+
onClick: ($event) => emit("quickSelect", rarity)
|
|
1976
|
+
}, toDisplayString(label), 9, _hoisted_19$3)]);
|
|
1977
|
+
}), 128))]),
|
|
1978
|
+
createElementVNode("p", _hoisted_20$3, toDisplayString(__props.destroySelectedLabel), 1),
|
|
1979
|
+
createElementVNode("button", {
|
|
1980
|
+
class: "destroy-button",
|
|
1981
|
+
disabled: !__props.destroyNames.length,
|
|
1982
|
+
type: "button",
|
|
1983
|
+
onClick: _cache[4] || (_cache[4] = ($event) => emit("destroy"))
|
|
1984
|
+
}, toDisplayString(__props.destroyButtonLabel), 9, _hoisted_21$3)
|
|
1985
|
+
])) : __props.isSortable ? (openBlock(), createElementBlock(Fragment, { key: 2 }, [
|
|
1986
|
+
_cache[10] || (_cache[10] = createElementVNode("span", { class: "filter" }, null, -1)),
|
|
1987
|
+
createElementVNode("div", _hoisted_22$2, [createCommentVNode(" eslint-disable-next-line vuejs-accessibility/form-control-has-label -- the sort's caption is no game text key yet, so no name in the reader's language exists until the bag's sort recording keys it; its options name it meanwhile "), withDirectives(createElementVNode("select", {
|
|
1988
|
+
"onUpdate:modelValue": _cache[5] || (_cache[5] = ($event) => sort.value = $event),
|
|
1989
|
+
class: "sort-select"
|
|
1990
|
+
}, [(openBlock(true), createElementBlock(Fragment, null, renderList(unref(InventorySorts), (inventorySort) => {
|
|
1991
|
+
return openBlock(), createElementBlock("option", {
|
|
1992
|
+
key: inventorySort,
|
|
1993
|
+
value: inventorySort
|
|
1994
|
+
}, toDisplayString(__props.sortLabels[inventorySort]), 9, _hoisted_23$1);
|
|
1995
|
+
}), 128))], 512), [[vModelSelect, sort.value]])]),
|
|
1996
|
+
createElementVNode("button", {
|
|
1997
|
+
class: "order",
|
|
1998
|
+
"aria-label": __props.orderLabel,
|
|
1999
|
+
"data-descending": isDescending.value,
|
|
2000
|
+
type: "button",
|
|
2001
|
+
onClick: _cache[6] || (_cache[6] = ($event) => isDescending.value = !isDescending.value)
|
|
2002
|
+
}, null, 8, _hoisted_24)
|
|
2003
|
+
], 64)) : (openBlock(), createElementBlock("ul", _hoisted_25, [(openBlock(true), createElementBlock(Fragment, null, renderList(__props.currencies, ({ id, isTopUp, name, quantity }) => {
|
|
2004
|
+
return openBlock(), createElementBlock("li", {
|
|
2005
|
+
key: id,
|
|
2006
|
+
class: "currency",
|
|
2007
|
+
"data-currency": id
|
|
2008
|
+
}, [
|
|
2009
|
+
createElementVNode("span", _hoisted_27, toDisplayString(name), 1),
|
|
2010
|
+
_cache[11] || (_cache[11] = createElementVNode("span", { class: "currency-icon" }, null, -1)),
|
|
2011
|
+
createTextVNode(" " + toDisplayString(quantity) + " ", 1),
|
|
2012
|
+
isTopUp ? (openBlock(), createElementBlock("span", _hoisted_28)) : createCommentVNode("v-if", true)
|
|
2013
|
+
], 8, _hoisted_26);
|
|
2014
|
+
}), 128))])),
|
|
2015
|
+
createCommentVNode(" The gadget's action under the detail panel, which equips the gadget to the quick-use slot. Provisional: its place\n is where the controller recording shows a gadget's action, the bottom bar's X, until the keyboard's is read "),
|
|
2016
|
+
selectedCell.value?.isEquipable && !__props.isDestroying ? (openBlock(), createElementBlock("button", {
|
|
2017
|
+
key: 4,
|
|
2018
|
+
class: "quick-use",
|
|
2019
|
+
type: "button",
|
|
2020
|
+
onClick: _cache[7] || (_cache[7] = ($event) => emit("quickUse", selectedCell.value.id))
|
|
2021
|
+
}, toDisplayString(__props.quickUseLabel), 1)) : createCommentVNode("v-if", true)
|
|
2022
|
+
], 8, _hoisted_2$13),
|
|
2023
|
+
createCommentVNode(" The dialog the Destroy button opens over the bag: the entries to be destroyed, and the warning that it cannot be\n undone, in the game's own wording. Provisional until the dialog is recorded "),
|
|
2024
|
+
__props.isConfirming ? (openBlock(), createElementBlock("section", {
|
|
2025
|
+
key: 0,
|
|
2026
|
+
class: "confirm",
|
|
2027
|
+
role: "dialog",
|
|
2028
|
+
"aria-modal": "true",
|
|
2029
|
+
"aria-label": __props.destroyConfirmTitle
|
|
2030
|
+
}, [
|
|
2031
|
+
createElementVNode("p", _hoisted_30, toDisplayString(__props.destroyConfirmTitle), 1),
|
|
2032
|
+
createElementVNode("p", _hoisted_31, toDisplayString(__props.destroyConfirmListLabel), 1),
|
|
2033
|
+
createElementVNode("ul", _hoisted_32, [(openBlock(true), createElementBlock(Fragment, null, renderList(__props.destroyNames, (name, index) => {
|
|
2034
|
+
return openBlock(), createElementBlock("li", { key: index }, toDisplayString(name), 1);
|
|
2035
|
+
}), 128))]),
|
|
2036
|
+
createElementVNode("p", _hoisted_33, toDisplayString(__props.destroyConfirmWarningLabel), 1),
|
|
2037
|
+
__props.isDestroyFull ? (openBlock(), createElementBlock("p", _hoisted_34, toDisplayString(__props.destroyFullLabel), 1)) : createCommentVNode("v-if", true),
|
|
2038
|
+
__props.destroyRecoveredNames.length ? (openBlock(), createElementBlock(Fragment, { key: 1 }, [createElementVNode("p", _hoisted_35, toDisplayString(__props.destroyRecoveredLabel), 1), createElementVNode("ul", _hoisted_36, [(openBlock(true), createElementBlock(Fragment, null, renderList(__props.destroyRecoveredNames, (name, index) => {
|
|
2039
|
+
return openBlock(), createElementBlock("li", { key: index }, toDisplayString(name), 1);
|
|
2040
|
+
}), 128))])], 64)) : createCommentVNode("v-if", true),
|
|
2041
|
+
createElementVNode("div", _hoisted_37, [createElementVNode("button", {
|
|
2042
|
+
ref_key: "cancelButton",
|
|
2043
|
+
ref: cancelButton,
|
|
2044
|
+
class: "confirm-button",
|
|
2045
|
+
type: "button",
|
|
2046
|
+
onClick: _cache[8] || (_cache[8] = ($event) => emit("cancelDestroy"))
|
|
2047
|
+
}, toDisplayString(__props.cancelLabel), 513), createElementVNode("button", {
|
|
2048
|
+
disabled: __props.isDestroyFull,
|
|
2049
|
+
class: "confirm-button",
|
|
2050
|
+
type: "button",
|
|
2051
|
+
onClick: _cache[9] || (_cache[9] = ($event) => emit("confirmDestroy"))
|
|
2052
|
+
}, toDisplayString(__props.destroyConfirmButtonLabel), 9, _hoisted_38)])
|
|
2053
|
+
], 8, _hoisted_29)) : createCommentVNode("v-if", true)
|
|
2054
|
+
])], 2112);
|
|
2055
|
+
};
|
|
2056
|
+
}
|
|
2057
|
+
}), [["__scopeId", "data-v-cf391b68"]]);
|
|
2058
|
+
//#endregion
|
|
2059
|
+
//#region src/components/LoadingSpinner/Index.vue
|
|
2060
|
+
const _hoisted_1$15 = ["aria-label"];
|
|
2061
|
+
var Index_default$21 = /*#__PURE__*/ export_helper_default(/* @__PURE__ */ defineComponent({
|
|
2062
|
+
__name: "Index",
|
|
2063
|
+
props: { label: {} },
|
|
2064
|
+
setup(__props) {
|
|
2065
|
+
return (_ctx, _cache) => {
|
|
2066
|
+
return openBlock(), createElementBlock(Fragment, null, [createCommentVNode(" The game's wait mark: a dark glass square 120 units across with rounded corners, and in it a white ring 40 units\n Across that fades out from its round head round to its tail, turning. Measured from a 1440 high recording "), createElementVNode("div", {
|
|
2067
|
+
class: "loading-spinner",
|
|
2068
|
+
role: "status",
|
|
2069
|
+
"aria-label": __props.label
|
|
2070
|
+
}, [..._cache[0] || (_cache[0] = [createElementVNode("span", { class: "ring" }, null, -1)])], 8, _hoisted_1$15)], 2112);
|
|
2071
|
+
};
|
|
2072
|
+
}
|
|
2073
|
+
}), [["__scopeId", "data-v-69cb5a34"]]);
|
|
2074
|
+
//#endregion
|
|
2075
|
+
//#region src/components/OrnamentDivider/Index.vue
|
|
2076
|
+
const _hoisted_1$14 = {
|
|
2077
|
+
class: "ornament-divider",
|
|
2078
|
+
"aria-hidden": "true"
|
|
2079
|
+
};
|
|
2080
|
+
const _hoisted_2$12 = {
|
|
2081
|
+
class: "end",
|
|
2082
|
+
viewBox: "0 0 320 224"
|
|
2083
|
+
};
|
|
2084
|
+
const _hoisted_3$10 = ["d"];
|
|
2085
|
+
const _hoisted_4$9 = {
|
|
2086
|
+
class: "middle",
|
|
2087
|
+
viewBox: "0 0 480 320"
|
|
2088
|
+
};
|
|
2089
|
+
const _hoisted_5$9 = ["d"];
|
|
2090
|
+
const _hoisted_6$8 = {
|
|
2091
|
+
class: "end right",
|
|
2092
|
+
viewBox: "0 0 320 224"
|
|
2093
|
+
};
|
|
2094
|
+
const _hoisted_7$8 = ["d"];
|
|
2095
|
+
var Index_default$22 = /*#__PURE__*/ export_helper_default(/* @__PURE__ */ defineComponent({
|
|
2096
|
+
__name: "Index",
|
|
2097
|
+
setup(__props) {
|
|
2098
|
+
return (_ctx, _cache) => {
|
|
2099
|
+
return openBlock(), createElementBlock(Fragment, null, [createCommentVNode(" The game's divider: a hairline as wide as its parent, a tapered diamond at each end and an interlocked double\n Diamond at its middle, in the game's units from the parent's `--unit` "), createElementVNode("div", _hoisted_1$14, [
|
|
2100
|
+
(openBlock(), createElementBlock("svg", _hoisted_2$12, [createElementVNode("path", { d: unref(ORNAMENT_END_PATH) }, null, 8, _hoisted_3$10)])),
|
|
2101
|
+
(openBlock(), createElementBlock("svg", _hoisted_4$9, [createElementVNode("path", { d: unref(ORNAMENT_MIDDLE_PATH) }, null, 8, _hoisted_5$9)])),
|
|
2102
|
+
(openBlock(), createElementBlock("svg", _hoisted_6$8, [createElementVNode("path", { d: unref(ORNAMENT_END_PATH) }, null, 8, _hoisted_7$8)]))
|
|
2103
|
+
])], 2112);
|
|
2104
|
+
};
|
|
2105
|
+
}
|
|
2106
|
+
}), [["__scopeId", "data-v-335021af"]]);
|
|
2107
|
+
//#endregion
|
|
2108
|
+
//#region src/components/PartySetupScreen/Index.vue
|
|
2109
|
+
const _hoisted_1$13 = { class: "party-setup-screen" };
|
|
2110
|
+
const _hoisted_2$11 = { class: "head" };
|
|
2111
|
+
const _hoisted_3$9 = { class: "title" };
|
|
2112
|
+
const _hoisted_4$8 = ["aria-label"];
|
|
2113
|
+
const _hoisted_5$8 = { class: "team" };
|
|
2114
|
+
const _hoisted_6$7 = { class: "slots" };
|
|
2115
|
+
const _hoisted_7$7 = ["data-empty"];
|
|
2116
|
+
const _hoisted_8$5 = {
|
|
2117
|
+
key: 0,
|
|
2118
|
+
class: "plate"
|
|
2119
|
+
};
|
|
2120
|
+
const _hoisted_9$4 = { class: "name" };
|
|
2121
|
+
const _hoisted_10$4 = {
|
|
2122
|
+
key: 0,
|
|
2123
|
+
class: "element",
|
|
2124
|
+
viewBox: "0 0 1600 1600",
|
|
2125
|
+
"aria-hidden": "true"
|
|
2126
|
+
};
|
|
2127
|
+
const _hoisted_11$4 = ["d"];
|
|
2128
|
+
const _hoisted_12$4 = { class: "level" };
|
|
2129
|
+
const _hoisted_13$4 = {
|
|
2130
|
+
key: 1,
|
|
2131
|
+
class: "plus",
|
|
2132
|
+
"aria-hidden": "true"
|
|
2133
|
+
};
|
|
2134
|
+
const _hoisted_14$4 = { class: "foot" };
|
|
2135
|
+
const _hoisted_15$3 = { class: "team-bar" };
|
|
2136
|
+
const _hoisted_16$3 = { class: "team-name" };
|
|
2137
|
+
const _hoisted_17$3 = { class: "deploy-bar" };
|
|
2138
|
+
var Index_default$23 = /*#__PURE__*/ export_helper_default(/* @__PURE__ */ defineComponent({
|
|
2139
|
+
__name: "Index",
|
|
2140
|
+
props: {
|
|
2141
|
+
backLabel: {},
|
|
2142
|
+
configureTeamLabel: {},
|
|
2143
|
+
deployLabel: {},
|
|
2144
|
+
quickSetupLabel: {},
|
|
2145
|
+
slots: {},
|
|
2146
|
+
teamName: {},
|
|
2147
|
+
title: {}
|
|
2148
|
+
},
|
|
2149
|
+
emits: [
|
|
2150
|
+
"close",
|
|
2151
|
+
"configureTeam",
|
|
2152
|
+
"deploy",
|
|
2153
|
+
"next",
|
|
2154
|
+
"previous",
|
|
2155
|
+
"quickSetup"
|
|
2156
|
+
],
|
|
2157
|
+
setup(__props, { emit: __emit }) {
|
|
2158
|
+
const emit = __emit;
|
|
2159
|
+
return (_ctx, _cache) => {
|
|
2160
|
+
return openBlock(), createElementBlock(Fragment, null, [createCommentVNode(" Party Setup, the team the player is looking at, fitted to the public clip's frame at 1080 high: the team's name and\n Configure Team at the foot's left, its four members standing across the middle with a name plate over each (its\n name, its element's mark and its level), an empty slot a plus, the arrows at either edge to step to the other teams,\n and Quick Setup and Deploy at the foot's right. The parity pass measures it against that frame "), createElementVNode("div", _hoisted_1$13, [
|
|
2161
|
+
createElementVNode("header", _hoisted_2$11, [createElementVNode("h1", _hoisted_3$9, toDisplayString(__props.title), 1), createElementVNode("button", {
|
|
2162
|
+
class: "back",
|
|
2163
|
+
"aria-label": __props.backLabel,
|
|
2164
|
+
type: "button",
|
|
2165
|
+
onClick: _cache[0] || (_cache[0] = ($event) => emit("close"))
|
|
2166
|
+
}, "↶", 8, _hoisted_4$8)]),
|
|
2167
|
+
createElementVNode("section", _hoisted_5$8, [
|
|
2168
|
+
createElementVNode("button", {
|
|
2169
|
+
class: "step previous",
|
|
2170
|
+
type: "button",
|
|
2171
|
+
onClick: _cache[1] || (_cache[1] = ($event) => emit("previous"))
|
|
2172
|
+
}, "‹"),
|
|
2173
|
+
createElementVNode("ol", _hoisted_6$7, [(openBlock(true), createElementBlock(Fragment, null, renderList(__props.slots, (slot, index) => {
|
|
2174
|
+
return openBlock(), createElementBlock("li", {
|
|
2175
|
+
key: index,
|
|
2176
|
+
class: "slot",
|
|
2177
|
+
"data-empty": !slot.levelText || void 0
|
|
2178
|
+
}, [slot.levelText ? (openBlock(), createElementBlock("div", _hoisted_8$5, [createElementVNode("span", _hoisted_9$4, [slot.elementMarkPath ? (openBlock(), createElementBlock("svg", _hoisted_10$4, [createElementVNode("path", { d: slot.elementMarkPath }, null, 8, _hoisted_11$4)])) : createCommentVNode("v-if", true), createTextVNode(" " + toDisplayString(slot.name), 1)]), createElementVNode("span", _hoisted_12$4, toDisplayString(slot.levelText), 1)])) : (openBlock(), createElementBlock("span", _hoisted_13$4, "+"))], 8, _hoisted_7$7);
|
|
2179
|
+
}), 128))]),
|
|
2180
|
+
createElementVNode("button", {
|
|
2181
|
+
class: "step next",
|
|
2182
|
+
type: "button",
|
|
2183
|
+
onClick: _cache[2] || (_cache[2] = ($event) => emit("next"))
|
|
2184
|
+
}, "›")
|
|
2185
|
+
]),
|
|
2186
|
+
createElementVNode("footer", _hoisted_14$4, [createElementVNode("div", _hoisted_15$3, [createElementVNode("p", _hoisted_16$3, toDisplayString(__props.teamName), 1), createElementVNode("button", {
|
|
2187
|
+
class: "action",
|
|
2188
|
+
type: "button",
|
|
2189
|
+
onClick: _cache[3] || (_cache[3] = ($event) => emit("configureTeam"))
|
|
2190
|
+
}, toDisplayString(__props.configureTeamLabel), 1)]), createElementVNode("div", _hoisted_17$3, [createElementVNode("button", {
|
|
2191
|
+
class: "action",
|
|
2192
|
+
type: "button",
|
|
2193
|
+
onClick: _cache[4] || (_cache[4] = ($event) => emit("quickSetup"))
|
|
2194
|
+
}, toDisplayString(__props.quickSetupLabel), 1), createElementVNode("button", {
|
|
2195
|
+
class: "action",
|
|
2196
|
+
type: "button",
|
|
2197
|
+
onClick: _cache[5] || (_cache[5] = ($event) => emit("deploy"))
|
|
2198
|
+
}, toDisplayString(__props.deployLabel), 1)])])
|
|
2199
|
+
])], 2112);
|
|
2200
|
+
};
|
|
2201
|
+
}
|
|
2202
|
+
}), [["__scopeId", "data-v-876761d0"]]);
|
|
2203
|
+
//#endregion
|
|
2204
|
+
//#region src/components/ProgressBar/Index.vue
|
|
2205
|
+
const _hoisted_1$12 = ["aria-valuenow"];
|
|
2206
|
+
const _hoisted_2$10 = { class: "track" };
|
|
2207
|
+
var Index_default$25 = /*#__PURE__*/ export_helper_default(/* @__PURE__ */ defineComponent({
|
|
2208
|
+
__name: "Index",
|
|
2209
|
+
props: {
|
|
2210
|
+
isFolded: { type: Boolean },
|
|
2211
|
+
progress: {}
|
|
2212
|
+
},
|
|
2213
|
+
setup(__props) {
|
|
2214
|
+
return (_ctx, _cache) => {
|
|
2215
|
+
return openBlock(), createElementBlock(Fragment, null, [createCommentVNode(" The game's progress bar, 394 units from diamond to diamond: a dark track 10 units high with pointed ends between\n Two small white diamonds, filled white from its left, measured from the English client's login screen. It opens\n Out of its middle over 250 ms as it mounts and folds back into it, so its diamonds meet as one: the English\n Recording's login screen at 60 frames "), createElementVNode("div", {
|
|
2216
|
+
class: normalizeClass(["progress-bar", { folded: __props.isFolded }]),
|
|
2217
|
+
role: "progressbar",
|
|
2218
|
+
"aria-valuemin": "0",
|
|
2219
|
+
"aria-valuemax": "100",
|
|
2220
|
+
"aria-valuenow": Math.round(__props.progress * 100)
|
|
2221
|
+
}, [
|
|
2222
|
+
_cache[0] || (_cache[0] = createElementVNode("span", { class: "diamond" }, null, -1)),
|
|
2223
|
+
createElementVNode("span", _hoisted_2$10, [createElementVNode("span", {
|
|
2224
|
+
class: "fill",
|
|
2225
|
+
style: normalizeStyle({ width: `${__props.progress * 100}%` })
|
|
2226
|
+
}, null, 4)]),
|
|
2227
|
+
_cache[1] || (_cache[1] = createElementVNode("span", { class: "diamond" }, null, -1))
|
|
2228
|
+
], 10, _hoisted_1$12)], 2112);
|
|
2229
|
+
};
|
|
2230
|
+
}
|
|
2231
|
+
}), [["__scopeId", "data-v-bea8e745"]]);
|
|
2232
|
+
//#endregion
|
|
2233
|
+
//#region src/components/PromptBand/Index.vue
|
|
2234
|
+
const _sfc_main$12 = {};
|
|
2235
|
+
const _hoisted_1$11 = { class: "prompt-band" };
|
|
2236
|
+
const _hoisted_2$9 = { class: "text" };
|
|
2237
|
+
function _sfc_render(_ctx, _cache) {
|
|
2238
|
+
return openBlock(), createElementBlock(Fragment, null, [createCommentVNode(" The band a prompt is set in across the foot of a screen: a navy glass strip 44 units high, fading in over its\n Ends, its words centred in a light grey. Its glass and fade are solved from the scene the English recording\n Shows through it at the door "), createElementVNode("div", _hoisted_1$11, [createElementVNode("p", _hoisted_2$9, [renderSlot(_ctx.$slots, "default", {}, void 0, true)])])], 2112);
|
|
2239
|
+
}
|
|
2240
|
+
var Index_default$26 = /*#__PURE__*/ export_helper_default(_sfc_main$12, [["render", _sfc_render], ["__scopeId", "data-v-8c88bb3d"]]);
|
|
2241
|
+
//#endregion
|
|
2242
|
+
//#region src/components/RarityStars/Index.vue
|
|
2243
|
+
const _hoisted_1$10 = { class: "stars" };
|
|
2244
|
+
var Index_default$27 = /*#__PURE__*/ export_helper_default(/* @__PURE__ */ defineComponent({
|
|
2245
|
+
__name: "Index",
|
|
2246
|
+
props: { rarity: {} },
|
|
2247
|
+
setup(__props) {
|
|
2248
|
+
return (_ctx, _cache) => {
|
|
2249
|
+
return openBlock(), createElementBlock(Fragment, null, [createCommentVNode(" The game's rarity stars: one star for each rarity, in the game's gold "), createElementVNode("span", _hoisted_1$10, toDisplayString("★".repeat(__props.rarity)), 1)], 2112);
|
|
2250
|
+
};
|
|
2251
|
+
}
|
|
2252
|
+
}), [["__scopeId", "data-v-a4c4ddf9"]]);
|
|
2253
|
+
//#endregion
|
|
2254
|
+
//#region src/components/ReputationScreen/Index.vue
|
|
2255
|
+
const _hoisted_1$9 = { class: "reputation-screen" };
|
|
2256
|
+
const _hoisted_2$8 = { class: "head" };
|
|
2257
|
+
const _hoisted_3$8 = {
|
|
2258
|
+
class: "title",
|
|
2259
|
+
role: "heading",
|
|
2260
|
+
"aria-level": "1"
|
|
2261
|
+
};
|
|
2262
|
+
const _hoisted_4$7 = ["aria-label"];
|
|
2263
|
+
const _hoisted_5$7 = { class: "detail" };
|
|
2264
|
+
const _hoisted_6$6 = { class: "headline" };
|
|
2265
|
+
const _hoisted_7$6 = { class: "requirement" };
|
|
2266
|
+
const _hoisted_8$4 = {
|
|
2267
|
+
key: 0,
|
|
2268
|
+
class: "offer"
|
|
2269
|
+
};
|
|
2270
|
+
const _hoisted_9$3 = { class: "offer-title" };
|
|
2271
|
+
const _hoisted_10$3 = { class: "levels" };
|
|
2272
|
+
const _hoisted_11$3 = [
|
|
2273
|
+
"aria-pressed",
|
|
2274
|
+
"data-achieved",
|
|
2275
|
+
"onClick"
|
|
2276
|
+
];
|
|
2277
|
+
const _hoisted_12$3 = { class: "badge" };
|
|
2278
|
+
const _hoisted_13$3 = { class: "badge-face" };
|
|
2279
|
+
const _hoisted_14$3 = { class: "badge-word" };
|
|
2280
|
+
const _hoisted_15$2 = { class: "badge-number" };
|
|
2281
|
+
const _hoisted_16$2 = { class: "items" };
|
|
2282
|
+
const _hoisted_17$2 = {
|
|
2283
|
+
key: 0,
|
|
2284
|
+
class: "unlock"
|
|
2285
|
+
};
|
|
2286
|
+
const _hoisted_18$2 = {
|
|
2287
|
+
key: 1,
|
|
2288
|
+
class: "achieved"
|
|
2289
|
+
};
|
|
2290
|
+
const _hoisted_19$2 = {
|
|
2291
|
+
class: "check",
|
|
2292
|
+
viewBox: "0 0 252 228",
|
|
2293
|
+
"aria-hidden": "true"
|
|
2294
|
+
};
|
|
2295
|
+
const _hoisted_20$2 = ["d"];
|
|
2296
|
+
const _hoisted_21$2 = { class: "hidden-label" };
|
|
2297
|
+
const _hoisted_22$1 = {
|
|
2298
|
+
key: 2,
|
|
2299
|
+
class: "status"
|
|
2300
|
+
};
|
|
2301
|
+
var Index_default$28 = /*#__PURE__*/ export_helper_default(/* @__PURE__ */ defineComponent({
|
|
2302
|
+
__name: "Index",
|
|
2303
|
+
props: /*@__PURE__*/ mergeModels({
|
|
2304
|
+
achievedLabel: {},
|
|
2305
|
+
backLabel: {},
|
|
2306
|
+
headline: {},
|
|
2307
|
+
levelLabel: {},
|
|
2308
|
+
levels: {},
|
|
2309
|
+
notAchievedLabel: {},
|
|
2310
|
+
offer: {},
|
|
2311
|
+
requirement: {},
|
|
2312
|
+
title: {}
|
|
2313
|
+
}, {
|
|
2314
|
+
"level": { default: 0 },
|
|
2315
|
+
"levelModifiers": {}
|
|
2316
|
+
}),
|
|
2317
|
+
emits: /*@__PURE__*/ mergeModels(["accept", "close"], ["update:level"]),
|
|
2318
|
+
setup(__props, { emit: __emit }) {
|
|
2319
|
+
const level = useModel(__props, "level");
|
|
2320
|
+
const emit = __emit;
|
|
2321
|
+
return (_ctx, _cache) => {
|
|
2322
|
+
return openBlock(), createElementBlock(Fragment, null, [createCommentVNode(" The Reputation reward page, the nation's keeper opens: its title across the head with the way back, the picked\n level's reward and requirement on the left, and the levels down the right. Each row is the public clip's at 1080\n high (references/reputation-screen): its level on a pentagon badge, its items in slots coloured by rarity with\n their count beneath, its unlock line behind an info mark, and the tick or the not achieved block at its end. The\n head and the left column are still provisional: the reference frames only the level list "), createElementVNode("div", _hoisted_1$9, [
|
|
2323
|
+
createElementVNode("header", _hoisted_2$8, [createElementVNode("p", _hoisted_3$8, toDisplayString(__props.title), 1), createElementVNode("button", {
|
|
2324
|
+
class: "back",
|
|
2325
|
+
"aria-label": __props.backLabel,
|
|
2326
|
+
type: "button",
|
|
2327
|
+
onClick: _cache[0] || (_cache[0] = ($event) => emit("close"))
|
|
2328
|
+
}, "↶", 8, _hoisted_4$7)]),
|
|
2329
|
+
createElementVNode("section", _hoisted_5$7, [createElementVNode("p", _hoisted_6$6, toDisplayString(__props.headline), 1), createElementVNode("p", _hoisted_7$6, [(openBlock(true), createElementBlock(Fragment, null, renderList(__props.requirement, ({ color, text }, index) => {
|
|
2330
|
+
return openBlock(), createElementBlock("span", {
|
|
2331
|
+
key: index,
|
|
2332
|
+
style: normalizeStyle({ color })
|
|
2333
|
+
}, toDisplayString(text), 5);
|
|
2334
|
+
}), 128))])]),
|
|
2335
|
+
__props.offer ? (openBlock(), createElementBlock("section", _hoisted_8$4, [createElementVNode("p", _hoisted_9$3, toDisplayString(__props.offer.title), 1), createElementVNode("button", {
|
|
2336
|
+
class: "accept",
|
|
2337
|
+
type: "button",
|
|
2338
|
+
onClick: _cache[1] || (_cache[1] = ($event) => emit("accept"))
|
|
2339
|
+
}, toDisplayString(__props.offer.acceptLabel), 1)])) : createCommentVNode("v-if", true),
|
|
2340
|
+
createElementVNode("ul", _hoisted_10$3, [(openBlock(true), createElementBlock(Fragment, null, renderList(__props.levels, (cell) => {
|
|
2341
|
+
return openBlock(), createElementBlock("li", { key: cell.level }, [createElementVNode("button", {
|
|
2342
|
+
class: "level",
|
|
2343
|
+
"aria-pressed": cell.level === level.value,
|
|
2344
|
+
"data-achieved": cell.isAchieved || void 0,
|
|
2345
|
+
type: "button",
|
|
2346
|
+
onClick: ($event) => level.value = cell.level
|
|
2347
|
+
}, [
|
|
2348
|
+
createElementVNode("span", _hoisted_12$3, [createElementVNode("span", _hoisted_13$3, [createElementVNode("span", _hoisted_14$3, toDisplayString(__props.levelLabel), 1), createElementVNode("span", _hoisted_15$2, toDisplayString(cell.level), 1)])]),
|
|
2349
|
+
createElementVNode("span", _hoisted_16$2, [(openBlock(true), createElementBlock(Fragment, null, renderList(cell.items, ({ count, label, rarity }, index) => {
|
|
2350
|
+
return openBlock(), createBlock(Index_default$20, {
|
|
2351
|
+
key: index,
|
|
2352
|
+
class: "item",
|
|
2353
|
+
"aria-label": label,
|
|
2354
|
+
count,
|
|
2355
|
+
rarity,
|
|
2356
|
+
role: "img"
|
|
2357
|
+
}, null, 8, [
|
|
2358
|
+
"aria-label",
|
|
2359
|
+
"count",
|
|
2360
|
+
"rarity"
|
|
2361
|
+
]);
|
|
2362
|
+
}), 128))]),
|
|
2363
|
+
cell.unlockLabel ? (openBlock(), createElementBlock("span", _hoisted_17$2, toDisplayString(cell.unlockLabel), 1)) : createCommentVNode("v-if", true),
|
|
2364
|
+
cell.isAchieved ? (openBlock(), createElementBlock("span", _hoisted_18$2, [(openBlock(), createElementBlock("svg", _hoisted_19$2, [createElementVNode("path", { d: unref(CHECK_MARK_PATH) }, null, 8, _hoisted_20$2)])), createElementVNode("span", _hoisted_21$2, toDisplayString(__props.achievedLabel), 1)])) : (openBlock(), createElementBlock("span", _hoisted_22$1, toDisplayString(__props.notAchievedLabel), 1))
|
|
2365
|
+
], 8, _hoisted_11$3)]);
|
|
2366
|
+
}), 128))])
|
|
2367
|
+
])], 2112);
|
|
2368
|
+
};
|
|
2369
|
+
}
|
|
2370
|
+
}), [["__scopeId", "data-v-9468271c"]]);
|
|
2371
|
+
//#endregion
|
|
2372
|
+
//#region src/models/InterfaceIcon.ts
|
|
2373
|
+
let InterfaceIcon = /* @__PURE__ */ function(InterfaceIcon) {
|
|
2374
|
+
InterfaceIcon["Exit"] = "Exit";
|
|
2375
|
+
InterfaceIcon["Notice"] = "Notice";
|
|
2376
|
+
InterfaceIcon["Power"] = "Power";
|
|
2377
|
+
InterfaceIcon["Repair"] = "Repair";
|
|
2378
|
+
InterfaceIcon["Settings"] = "Settings";
|
|
2379
|
+
return InterfaceIcon;
|
|
2380
|
+
}({});
|
|
2381
|
+
const InterfaceIcons = Object.values(InterfaceIcon);
|
|
2382
|
+
//#endregion
|
|
2383
|
+
//#region src/services/InterfaceIconCentreMap.ts
|
|
2384
|
+
const InterfaceIconCentreMap = {
|
|
2385
|
+
["Exit"]: [26.6, 24.75],
|
|
2386
|
+
["Notice"]: [24, 25.8],
|
|
2387
|
+
["Power"]: [25.5, 23.75],
|
|
2388
|
+
["Repair"]: [24, 26],
|
|
2389
|
+
["Settings"]: [23.95, 25]
|
|
2390
|
+
};
|
|
2391
|
+
//#endregion
|
|
2392
|
+
//#region src/services/InterfaceIconPathMap.ts
|
|
2393
|
+
const InterfaceIconPathMap = {
|
|
2394
|
+
["Exit"]: "m14.3 8.16h17.06l.09.09.66.09.56.28.89.8.66 1.5v.56l.09.1v2.25q-.16.07-.09.37l-.42.71-.57.18h-2.06l-.09-.09-.56-.09-.33-.33q.07-.31-.1-.38v-1.12l-.42-.52-.65-.47h-11.72l-.61.33-.38.75v23.25l.19.47.33.42.47.19h11.72l.98-.8.09-.18v-1.22l.1-.28.33-.33q.17-.16.56-.1l.09-.09h2.06q.07.16.38.09l.33.24.37.84v2.44l-.09.09v.47l-.28.56v.19l-.38.75-.23.24-.66.56-.56.28-.66.09-.09.1h-17.06l-1.13-.38q-.33-.5-.89-.65-.2-.82-.75-1.36l-.09-.28v-.47l-.1-.1v-26.81q.21-.12.1-.56l.18-.38.38-.47.19-.56.42-.42.56-.47 1.13-.37zm19.03 9h.47l.75.28 2.25 2.15 2.2 1.93.14.23q.43.08.61.42l.33.42 1.17.99.42.51.24.14.09.29v.56l-.09.28-.33.33q-.21-.07-.14.14l-.94.84-.14.24-.52.32-.42.52-.42.33-.23.33q-.46.15-.71.51.07.21-.14.14l-1.69 1.6-.56.46h-.14l-.14.29-1.12.93q-.31-.07-.38.1h-.56l-.71-.52-.28-.75v-3.75l-.23-.33h-7.59l-.47-.18-.52-.52-.19-.47v-2.15l.28-.66.52-.52.28-.09h7.13l.18.09q.07-.16.38-.09l.23-.23v-3.85l.1-.09q-.07-.39.09-.56l.42-.43.38-.18z",
|
|
2395
|
+
["Notice"]: "m14.67 11.16h1.41q.63.21.98.7l.28.84v3.1q-.21.11-.09.56l-.19.37-.42.43-.56.28h-1.41l-.65-.28-.33-.33-.28-.56v-3.85l.18-.56.43-.42.65-.28zm18 0h1.41q.63.21.98.7l.19.37q-.12.45.09.57v3.18l-.09.1-.09.56-.52.52-.56.28h-1.41l-.89-.38-.37-.89v-3.75l.28-.65.33-.33.65-.28zm-4.03 2.9.38.1.23.23.09.28v2.44l.89 1.64.52.33.33.42 1.31.56q.45-.11.56.1h.85q.11-.21.56-.1l1.55-.65v-.14l.32-.43q.37-.05.52-.32l.66-1.97v-1.97l.32-.33.29-.09.09.09h.37l.47.19 1.08.98.47.75.09.66.1.09v20.53l-.1.1-.09.65-.28.57-.8.89-.56.18-.84.57h-.85l-.09.09h-26.16l-.09-.09h-.66l-.28-.1q-.45-.49-1.22-.65l-.33-.33-.56-.75-.37-1.13v-20.62l.37-1.03.99-1.08.37-.28.56-.19q.38.09.47-.09h.85l.23.23.09.28v2.44l.19.47.28.28.28.56v.19l.24.23.75.66 1.03.47.28.09h.47l.09.1h1.03l.1-.1.56-.09.66-.38h.18l.43-.18v-.14l.61-.61q.21.07.14-.14l.65-1.5q-.11-.45.1-.57v-1.87l.23-.33.19-.09h8.72l.09-.1zm-14.48 10.03-.28.1-.66.56-.38.37-.09.29v1.31l.09.19.85.75.56.18h19.69l.56-.18.75-.75.09-.29v-1.12l-.18-.47-.28-.28-.38-.28v-.19l-.38-.19h-19.96zm-.19 7.97-.56.28-.47.47-.19.47v1.13l.19.47.47.37.56.28h.65l.1.09h.56l.1-.09h18.84l.66-.37.37-.47.09-.28v-1.13l-.28-.56-.84-.66h-20.25z",
|
|
2396
|
+
["Power"]: "m24.98 6.19h1.13l.84.56.43.42.37.66v.65l.09.1v10.87l-.09.1v.56l-.19.47-.7.7-.75.47h-1.13l-.56-.28-.89-.89-.19-.47v-.47l-.09-.09v-11.07l.09-.09v-.56l.19-.38.61-.7.84-.56zm-6 3q.36-.07.43.14l.09.19v4.5l-.42.51-.47.38-.28.09-1.08.98-.42.52-.33.23-1.22 1.5-.37.75v.19l-.47.75-.38 1.5-.37.56q.07.31-.1.38v.84l-.09.1v3l.09.09v.84q.17.07.1.38l.47.84v.28l.09.1v.28l.19.56.28.38.56 1.31 1.45 1.73.52.43.23.32.75.66.29.09.46.47.57.28h.18l.94.57 1.5.37.56.38q.31-.07.38.09h.84l.1.09h3l.09-.09h.84q.07-.16.38-.09l.56-.38 1.5-.37.38-.29 1.31-.56 1.73-1.45.43-.52.32-.23.66-.75.09-.28.47-.47.28-.56v-.19l.57-.94.37-1.5.38-.56q-.07-.31.09-.38v-.84l.09-.09v-3l-.09-.1v-.84q-.16-.07-.09-.38l-.38-.56-.19-.94-.09-.09v-.28l-.37-.56-.57-1.32-1.45-1.73-.52-.42-.23-.33-1.92-1.55-.1-.18v-4.5l.24-.33h.28l.47.47.84.28.47.47.56.18q.62.64 1.46.94-.05.27.23.38l.61.42.33.42.42.23q.08.44.42.61l.33.24.19.37.56.57q.2.6.66.93l.18.57.57.65.18.66.57.75.09.28.09.75.28.56.19.56.1.75.09.1v.75l.09.09v1.03l.1.1v3.09l-.1.09v1.04l-.09.09v.66q-.19.09-.09.46l-.1.1v.28l-.19.56-.28.56-.18 1.04-.47.56-.28.84-.57.66-.18.56-.38.38-.47.89q-.27-.05-.37.23l-.42.61-.43.33-.23.42q-.43.08-.61.42l-.23.33-.38.19-.56.56-.28.09-.85.66-.56.19-.47.47-.65.18-.75.57-.29.09h-.37l-1.59.56-.75.1-.1.09h-.47l-.09.09h-1.03l-.1.1h-3.37l-.09-.1h-1.04l-.09-.09h-.47l-.09-.09-.85-.1-1.12-.47-1.03-.18-.56-.47-.66-.19-.66-.56-.56-.19q-.45-.49-1.12-.75l-.57-.56-.61-.42-.32-.43-.43-.23q-.08-.43-.42-.61l-.42-.33q-.06-.36-.33-.51-.21.07-.14-.14l-.47-.75-.37-.38-.38-.84-.37-.38-.28-.84-.38-.38-.28-.84v-.38l-.47-1.12-.09-.75-.1-.09v-.75l-.09-.1v-.94l-.09-.09v-3.28l.09-.09v-.94l.09-.1v-.65q.19-.1.1-.47l.09-.09v-.29l.19-.56.19-.28v-.28l.18-.38.1-.65.47-.56.28-.85.56-.65.19-.57 1.64-2.11.42-.32.23-.43q.44-.08.61-.42l.24-.33q.61-.23.94-.75l.46-.18.38-.38.56-.28h.19l.56-.56.85-.28.46-.47z",
|
|
2397
|
+
["Repair"]: "m29.02 9.28q.37-.09.46.1h1.22q.1.18.47.09l.1.09 1.4.28.24.24.09.56q-.16.07-.09.38l-.33.32-.33.24-.33.42-.42.33-.33.42-.33.23-.23.43-.52.32-.18.43q-.47.11-.75.51l-.24.33-.23.14-.42.61-.33.23-.28.66q.07.31-.1.38v.56l-.09.09v2.81l.09.1v.28l.28.84.8.8.56.19h.28l.1.09h3.28l.09-.09.75-.1.47-.28 2.58-2.39 1.08-1.26.33-.24.23-.33.84-.75h.66l.42.33.28.75v.75l.1.1v3.09l-.1.09v.57l-.09.09v.47l-.19.47v.28l-.47.94-.18.75-.47.46-.19.47q-.56.43-.84 1.13l-.99 1.08-.61.42q.07.21-.14.14-.35.4-.94.56l-.28.28-.84.38h-.19l-.65.47-1.41.28-.28.19-.85.28h-1.4q-.12.21-.56.09l-.1-.09h-1.12q-.07-.17-.38-.1l-.65-.37h-.29l-.46-.19h-.38l-.94-.47-.84-.19q-.49-.17-.75-.56l-.47-.19-1.17-1.07q.07-.22-.14-.14l-1.17-1.27q-.1-.47-.47-.66l-.57-1.22v-.28l-.28-.65-.18-1.03-.38-.66-.09-.28v-.47l-.1-.09v-3l.1-.1v-.56l.09-.28.47-.94.09-.75.66-1.22v-.19l.28-.56.38-.37q.11-.54.51-.8l.33-.23q.06-.37.33-.52l1.59-1.31.66-.28.47-.47.65-.19.94-.56.66-.1.09-.09h.47l.84-.28 1.22-.09.1-.1zm-12.29 17.72q.52-.09.61.23.13.58.57.85l.47.98h.14l.32.33.43.61.32.23.33.43.33.23q.06.36.33.52l.37.09.57.56 1.03.47.61.52.09.37q-.64.96-1.5 1.69v.14h-.14l-1.27 1.17-.42.52-.23.14-.94 1.03v.14h-.14l-1.27 1.17-.32.42-.33.24-1.27 1.36-.42.33q.07.21-.14.14l-.19.18h-.19l-.37.29-.84.37h-.75l-.1.09h-1.12l-.1-.09h-.56l-.66-.28-.18-.19-.66-.28-.8-.7-.65-.94-.1-.56-.09-.1q.09-.37-.09-.47v-2.06l.09-.09.09-.66.29-.56.89-1.17.42-.33.42-.52.42-.32.14-.24.61-.51.14-.24.42-.33.43-.51.42-.33.42-.52.33-.23.33-.42.42-.33.23-.33.42-.33.43-.51.42-.33.42-.52.42-.32.14-.24.56-.28zm-5.57 9.94-.47.18v.19l-.66.85v.84l.19.38.75.65.65.28.38-.09.47-.28.56-.56.19-.47v-.85l-.56-.75-.38-.37h-1.12z",
|
|
2398
|
+
["Settings"]: "m17.95 8.25h.94q.07.16.38.09l.37.19.66.56.28.1.47.47q.76.22 1.22.75l.56.18h.37l.1.1h1.4q.12-.21.57-.1l.65-.28.28-.28.85-.37.47-.47.28-.1.65-.56.38-.19q.37.1.47-.09h.84l.09.09h.47l.28.1.66.47.84.37.66.56.38.1.56.56q.43.08.61.42l.56.66.09.56.1.09v.38l.09.09v.75l-.09.1v.56l-.1.09v2.35q.17.07.1.37.44.5.65 1.22l.89.89.75.56.38.1.56.47h.19l.84.37.89.8.66 1.22v.75l.09.09v3.84l-.09.1v.56l-.19.38-.79.89q-.81.27-1.41.75l-.84.28-1.18.98-.65.75-.85 1.6v2.53l.1.09v.66q.16.07.09.37l-.09.1-.1.84-.28.56-.33.33-.32.23-.24.33-.56.28h-.19l-.33.33-.14.24q-.7.18-1.03.75l-.84.37-.56.19h-.38l-.09.09h-.66q-.07-.16-.37-.09l-.66-.38h-.19l-.65-.65-.29-.1-.84-.75-.66-.18-.65-.38q-.45.12-.56-.09h-.94l-.1.09-.65.1-1.22.56-.47.47-.56.28-.33.33-.14.23q-.64.11-1.03.47-.31-.07-.38.09h-.65l-.1-.09-.65-.1-.28-.18-.85-.28-.56-.57-.61-.32-.23-.33q-1.18-.42-1.83-1.36l-.28-.85v-.46l-.1-.29.1-.09v-.66l.09-.09v-1.5l.09-.28-.09-.09v-.75l-.09-.29q-.52-.51-.75-1.31l-1.08-1.17q-.49-.17-.75-.56l-.66-.19-1.59-.84-.33-.33-.47-.56-.19-.38q.12-.44-.09-.56v-4.13l.09-.09v-.56l.1-.28.56-.94.33-.33.56-.47.84-.28.75-.56.57-.19 1.45-1.36.75-1.5v-2.44l-.09-.09v-.56l-.1-.1v-.84l.1-.09.18-.94.89-.99.61-.32.24-.33.65-.28.38-.38 1.03-.47.19-.19.56-.28q.45.12.56-.09zm5.11 9.94-1.97.65-.84.66-.28.09-.47.57-.19.09-.37.37-.94 1.41-.09.47-.57 1.03v.75l-.09.1v1.31l.09.09v.66q.19 0 .1.37l.47.66.28.94.56.56.09.28q.75.84 1.78 1.5l.76.19.84.56q.28-.09.47.09h2.62q.1-.18.57-.09l1.21-.66.57-.18.75-.57.84-.84.09-.28.66-.66.09-.56.66-1.13v-.74l.09-.1v-1.5l-.09-.09v-.66q-.19-.09-.09-.37l-.57-.94-.18-.56-.66-.75-.09-.29-.28-.28-.29-.28-1.12-1.03-.85-.37h-.28l-.75-.38q-.47.1-.47-.09h-2.06z"
|
|
2399
|
+
};
|
|
2400
|
+
//#endregion
|
|
2401
|
+
//#region src/components/RoundButton/Index.vue
|
|
2402
|
+
const _hoisted_1$8 = ["viewBox"];
|
|
2403
|
+
const _hoisted_2$7 = ["d"];
|
|
2404
|
+
const _hoisted_3$7 = [
|
|
2405
|
+
"cx",
|
|
2406
|
+
"cy",
|
|
2407
|
+
"r",
|
|
2408
|
+
"stroke-width"
|
|
2409
|
+
];
|
|
2410
|
+
var Index_default$29 = /*#__PURE__*/ export_helper_default(/* @__PURE__ */ defineComponent({
|
|
2411
|
+
__name: "Index",
|
|
2412
|
+
props: {
|
|
2413
|
+
icon: {},
|
|
2414
|
+
label: {}
|
|
2415
|
+
},
|
|
2416
|
+
setup(__props) {
|
|
2417
|
+
return (_ctx, _cache) => {
|
|
2418
|
+
return openBlock(), createElementBlock(Fragment, null, [createCommentVNode(" The game's round button: a white disc 52 units across under a soft dark rim, its glyph in the game's near black\n Centred on its ink, as the game centres each icon's sprite "), createVNode(Index_default$13, {
|
|
2419
|
+
label: __props.label,
|
|
2420
|
+
size: 52
|
|
2421
|
+
}, {
|
|
2422
|
+
default: withCtx(() => [(openBlock(), createElementBlock("svg", {
|
|
2423
|
+
class: "glyph",
|
|
2424
|
+
viewBox: `${unref(InterfaceIconCentreMap)[__props.icon][0] - 24} ${unref(InterfaceIconCentreMap)[__props.icon][1] - 24} 48 48`,
|
|
2425
|
+
"aria-hidden": "true"
|
|
2426
|
+
}, [createElementVNode("path", {
|
|
2427
|
+
d: unref(InterfaceIconPathMap)[__props.icon],
|
|
2428
|
+
"fill-rule": "evenodd"
|
|
2429
|
+
}, null, 8, _hoisted_2$7), __props.icon === unref(InterfaceIcon).Settings ? (openBlock(), createElementBlock("circle", {
|
|
2430
|
+
key: 0,
|
|
2431
|
+
cx: unref(SETTINGS_RING_CENTRE)[0],
|
|
2432
|
+
cy: unref(SETTINGS_RING_CENTRE)[1],
|
|
2433
|
+
r: unref(SETTINGS_RING_RADIUS),
|
|
2434
|
+
class: "ring",
|
|
2435
|
+
"stroke-width": unref(SETTINGS_RING_WIDTH)
|
|
2436
|
+
}, null, 8, _hoisted_3$7)) : createCommentVNode("v-if", true)], 8, _hoisted_1$8))]),
|
|
2437
|
+
_: 1
|
|
2438
|
+
}, 8, ["label"])], 2112);
|
|
2439
|
+
};
|
|
2440
|
+
}
|
|
2441
|
+
}), [["__scopeId", "data-v-4f52a820"]]);
|
|
2442
|
+
//#endregion
|
|
2443
|
+
//#region src/components/ServerBar/Index.vue
|
|
2444
|
+
const _hoisted_1$7 = { class: "server-bar" };
|
|
2445
|
+
const _hoisted_2$6 = {
|
|
2446
|
+
class: "mark",
|
|
2447
|
+
viewBox: "0 0 46 46",
|
|
2448
|
+
"aria-hidden": "true"
|
|
2449
|
+
};
|
|
2450
|
+
const _hoisted_3$6 = ["d"];
|
|
2451
|
+
const _hoisted_4$6 = ["d"];
|
|
2452
|
+
const _hoisted_5$6 = { class: "name" };
|
|
2453
|
+
var Index_default$31 = /*#__PURE__*/ export_helper_default(/* @__PURE__ */ defineComponent({
|
|
2454
|
+
__name: "Index",
|
|
2455
|
+
props: { name: {} },
|
|
2456
|
+
setup(__props) {
|
|
2457
|
+
return (_ctx, _cache) => {
|
|
2458
|
+
return openBlock(), createElementBlock(Fragment, null, [createCommentVNode(" The bar naming the chosen server, 456 by 75 units: a dark glass slab with a faint rim, the ticked diamond at its\n Left and the server's name at its middle, measured from the English client's login screen at 1080 high "), createElementVNode("div", _hoisted_1$7, [(openBlock(), createElementBlock("svg", _hoisted_2$6, [createElementVNode("path", {
|
|
2459
|
+
class: "diamond",
|
|
2460
|
+
d: unref(SERVER_MARK_DIAMOND_PATH)
|
|
2461
|
+
}, null, 8, _hoisted_3$6), createElementVNode("path", {
|
|
2462
|
+
class: "tick",
|
|
2463
|
+
d: unref(SERVER_MARK_TICK_PATH)
|
|
2464
|
+
}, null, 8, _hoisted_4$6)])), createElementVNode("p", _hoisted_5$6, toDisplayString(__props.name), 1)])], 2112);
|
|
2465
|
+
};
|
|
2466
|
+
}
|
|
2467
|
+
}), [["__scopeId", "data-v-6b68b3eb"]]);
|
|
2468
|
+
//#endregion
|
|
2469
|
+
//#region src/components/ShopScreen/Index.vue
|
|
2470
|
+
const _hoisted_1$6 = { class: "shop-screen" };
|
|
2471
|
+
const _hoisted_2$5 = { class: "balances" };
|
|
2472
|
+
const _hoisted_3$5 = ["aria-label"];
|
|
2473
|
+
const _hoisted_4$5 = {
|
|
2474
|
+
key: 0,
|
|
2475
|
+
class: "top-up",
|
|
2476
|
+
"aria-hidden": "true"
|
|
2477
|
+
};
|
|
2478
|
+
const _hoisted_5$5 = {
|
|
2479
|
+
key: 0,
|
|
2480
|
+
class: "tabs"
|
|
2481
|
+
};
|
|
2482
|
+
const _hoisted_6$5 = ["aria-pressed", "onClick"];
|
|
2483
|
+
const _hoisted_7$5 = { class: "goods" };
|
|
2484
|
+
const _hoisted_8$3 = ["aria-pressed", "onClick"];
|
|
2485
|
+
const _hoisted_9$2 = { class: "good-name" };
|
|
2486
|
+
const _hoisted_10$2 = {
|
|
2487
|
+
key: 0,
|
|
2488
|
+
class: "good-limit"
|
|
2489
|
+
};
|
|
2490
|
+
const _hoisted_11$2 = ["aria-label"];
|
|
2491
|
+
const _hoisted_12$2 = ["aria-label"];
|
|
2492
|
+
const _hoisted_13$2 = { class: "detail-good" };
|
|
2493
|
+
const _hoisted_14$2 = { class: "detail-name" };
|
|
2494
|
+
const _hoisted_15$1 = ["aria-label"];
|
|
2495
|
+
const _hoisted_16$1 = {
|
|
2496
|
+
key: 0,
|
|
2497
|
+
class: "detail-line"
|
|
2498
|
+
};
|
|
2499
|
+
const _hoisted_17$1 = {
|
|
2500
|
+
key: 1,
|
|
2501
|
+
class: "detail-line"
|
|
2502
|
+
};
|
|
2503
|
+
const _hoisted_18$1 = [
|
|
2504
|
+
"aria-label",
|
|
2505
|
+
"max",
|
|
2506
|
+
"value"
|
|
2507
|
+
];
|
|
2508
|
+
const _hoisted_19$1 = { class: "amount-value" };
|
|
2509
|
+
const _hoisted_20$1 = ["aria-label"];
|
|
2510
|
+
const _hoisted_21$1 = ["disabled"];
|
|
2511
|
+
var Index_default$32 = /*#__PURE__*/ export_helper_default(/* @__PURE__ */ defineComponent({
|
|
2512
|
+
__name: "Index",
|
|
2513
|
+
props: /*@__PURE__*/ mergeModels({
|
|
2514
|
+
balances: {},
|
|
2515
|
+
buyLabel: {},
|
|
2516
|
+
closeLabel: {},
|
|
2517
|
+
countLabel: {},
|
|
2518
|
+
countMaximum: {},
|
|
2519
|
+
goods: {},
|
|
2520
|
+
tabs: {},
|
|
2521
|
+
title: {}
|
|
2522
|
+
}, {
|
|
2523
|
+
"count": { default: 1 },
|
|
2524
|
+
"countModifiers": {},
|
|
2525
|
+
"goodId": { default: 0 },
|
|
2526
|
+
"goodIdModifiers": {},
|
|
2527
|
+
"tabId": { default: 0 },
|
|
2528
|
+
"tabIdModifiers": {}
|
|
2529
|
+
}),
|
|
2530
|
+
emits: /*@__PURE__*/ mergeModels(["buy", "close"], [
|
|
2531
|
+
"update:count",
|
|
2532
|
+
"update:goodId",
|
|
2533
|
+
"update:tabId"
|
|
2534
|
+
]),
|
|
2535
|
+
setup(__props, { emit: __emit }) {
|
|
2536
|
+
const count = useModel(__props, "count");
|
|
2537
|
+
const goodId = useModel(__props, "goodId");
|
|
2538
|
+
const tabId = useModel(__props, "tabId");
|
|
2539
|
+
const emit = __emit;
|
|
2540
|
+
const pickedGood = computed(() => __props.goods.find((good) => good.id === goodId.value));
|
|
2541
|
+
const pickedCount = computed(() => Math.min(Math.max(count.value, 1), Math.max(__props.countMaximum, 1)));
|
|
2542
|
+
const setCount = (event) => {
|
|
2543
|
+
count.value = Number(event.target.value);
|
|
2544
|
+
};
|
|
2545
|
+
const buy = () => {
|
|
2546
|
+
if (pickedGood.value && __props.countMaximum >= 1) emit("buy", pickedGood.value, pickedCount.value);
|
|
2547
|
+
};
|
|
2548
|
+
return (_ctx, _cache) => {
|
|
2549
|
+
return openBlock(), createElementBlock(Fragment, null, [createCommentVNode(" The Shop screen, its pieces placed in the game's own pixels at 1080 high (`--unit` a pixel of that frame): the title\n and the balances across the head, the way out at the head's right, the tabs under them and the goods grid below. A\n picked good opens its detail over the grid, with its costs, limit and refresh, the count picker and the Buy button.\n The pixels are measured from the public Paimon's Bargains purchase clip aJq1MnTPtZ4 at 12 seconds (the frame is kept\n outside the repo): the panel at 505 by 250, the grid's four columns of 310 with gaps of 32, the Buy button at 1135 to\n 1345 by 728 to 790 "), createElementVNode("div", _hoisted_1$6, [
|
|
2550
|
+
createVNode(Index_default$30, {
|
|
2551
|
+
class: "heading",
|
|
2552
|
+
role: "heading",
|
|
2553
|
+
"aria-level": "1"
|
|
2554
|
+
}, {
|
|
2555
|
+
default: withCtx(() => [createTextVNode(toDisplayString(__props.title), 1)]),
|
|
2556
|
+
_: 1
|
|
2557
|
+
}),
|
|
2558
|
+
createElementVNode("ul", _hoisted_2$5, [(openBlock(true), createElementBlock(Fragment, null, renderList(__props.balances, (balance) => {
|
|
2559
|
+
return openBlock(), createElementBlock("li", {
|
|
2560
|
+
key: balance.id,
|
|
2561
|
+
class: "balance"
|
|
2562
|
+
}, [
|
|
2563
|
+
createElementVNode("span", {
|
|
2564
|
+
class: "balance-icon",
|
|
2565
|
+
role: "img",
|
|
2566
|
+
"aria-label": balance.name
|
|
2567
|
+
}, null, 8, _hoisted_3$5),
|
|
2568
|
+
createTextVNode(" " + toDisplayString(balance.quantity) + " ", 1),
|
|
2569
|
+
balance.isTopUp ? (openBlock(), createElementBlock("span", _hoisted_4$5, "+")) : createCommentVNode("v-if", true)
|
|
2570
|
+
]);
|
|
2571
|
+
}), 128))]),
|
|
2572
|
+
createVNode(Index_default$13, {
|
|
2573
|
+
class: "close",
|
|
2574
|
+
label: __props.closeLabel,
|
|
2575
|
+
size: 56,
|
|
2576
|
+
onClick: _cache[0] || (_cache[0] = ($event) => emit("close"))
|
|
2577
|
+
}, {
|
|
2578
|
+
default: withCtx(() => [..._cache[4] || (_cache[4] = [createElementVNode("svg", {
|
|
2579
|
+
viewBox: "0 0 24 24",
|
|
2580
|
+
"aria-hidden": "true"
|
|
2581
|
+
}, [createElementVNode("path", { d: "M6 6 18 18M18 6 6 18" })], -1)])]),
|
|
2582
|
+
_: 1
|
|
2583
|
+
}, 8, ["label"]),
|
|
2584
|
+
__props.tabs.length > 0 ? (openBlock(), createElementBlock("ul", _hoisted_5$5, [(openBlock(true), createElementBlock(Fragment, null, renderList(__props.tabs, (tab) => {
|
|
2585
|
+
return openBlock(), createElementBlock("li", { key: tab.id }, [createElementVNode("button", {
|
|
2586
|
+
class: "tab",
|
|
2587
|
+
"aria-pressed": tab.id === tabId.value,
|
|
2588
|
+
type: "button",
|
|
2589
|
+
onClick: ($event) => tabId.value = tab.id
|
|
2590
|
+
}, toDisplayString(tab.name), 9, _hoisted_6$5)]);
|
|
2591
|
+
}), 128))])) : createCommentVNode("v-if", true),
|
|
2592
|
+
createElementVNode("ul", _hoisted_7$5, [(openBlock(true), createElementBlock(Fragment, null, renderList(__props.goods, (good) => {
|
|
2593
|
+
return openBlock(), createElementBlock("li", { key: good.id }, [createElementVNode("button", {
|
|
2594
|
+
class: "good",
|
|
2595
|
+
"aria-pressed": good.id === goodId.value,
|
|
2596
|
+
type: "button",
|
|
2597
|
+
onClick: ($event) => goodId.value = good.id
|
|
2598
|
+
}, [
|
|
2599
|
+
createElementVNode("span", _hoisted_9$2, toDisplayString(good.name), 1),
|
|
2600
|
+
good.limitLabel ? (openBlock(), createElementBlock("span", _hoisted_10$2, toDisplayString(good.limitLabel), 1)) : createCommentVNode("v-if", true),
|
|
2601
|
+
(openBlock(true), createElementBlock(Fragment, null, renderList(good.costs, (cost) => {
|
|
2602
|
+
return openBlock(), createElementBlock("span", {
|
|
2603
|
+
key: cost.name,
|
|
2604
|
+
class: "good-price"
|
|
2605
|
+
}, [createElementVNode("span", {
|
|
2606
|
+
class: "price-icon",
|
|
2607
|
+
role: "img",
|
|
2608
|
+
"aria-label": cost.name
|
|
2609
|
+
}, null, 8, _hoisted_11$2), createTextVNode(" " + toDisplayString(cost.count), 1)]);
|
|
2610
|
+
}), 128))
|
|
2611
|
+
], 8, _hoisted_8$3)]);
|
|
2612
|
+
}), 128))]),
|
|
2613
|
+
pickedGood.value ? (openBlock(), createElementBlock("div", {
|
|
2614
|
+
key: 1,
|
|
2615
|
+
class: "detail",
|
|
2616
|
+
role: "dialog",
|
|
2617
|
+
"aria-modal": "true",
|
|
2618
|
+
"aria-label": pickedGood.value.name
|
|
2619
|
+
}, [
|
|
2620
|
+
createElementVNode("div", _hoisted_13$2, [
|
|
2621
|
+
createElementVNode("p", _hoisted_14$2, toDisplayString(pickedGood.value.name), 1),
|
|
2622
|
+
(openBlock(true), createElementBlock(Fragment, null, renderList(pickedGood.value.costs, (cost) => {
|
|
2623
|
+
return openBlock(), createElementBlock("p", {
|
|
2624
|
+
key: cost.name,
|
|
2625
|
+
class: "detail-price"
|
|
2626
|
+
}, [createElementVNode("span", {
|
|
2627
|
+
class: "price-icon",
|
|
2628
|
+
role: "img",
|
|
2629
|
+
"aria-label": cost.name
|
|
2630
|
+
}, null, 8, _hoisted_15$1), createTextVNode(" " + toDisplayString(cost.count * pickedCount.value), 1)]);
|
|
2631
|
+
}), 128)),
|
|
2632
|
+
pickedGood.value.limitLabel ? (openBlock(), createElementBlock("p", _hoisted_16$1, toDisplayString(pickedGood.value.limitLabel), 1)) : createCommentVNode("v-if", true),
|
|
2633
|
+
pickedGood.value.refreshLabel ? (openBlock(), createElementBlock("p", _hoisted_17$1, toDisplayString(pickedGood.value.refreshLabel), 1)) : createCommentVNode("v-if", true)
|
|
2634
|
+
]),
|
|
2635
|
+
createElementVNode("input", {
|
|
2636
|
+
"aria-label": __props.countLabel,
|
|
2637
|
+
class: "amount",
|
|
2638
|
+
max: __props.countMaximum,
|
|
2639
|
+
min: "1",
|
|
2640
|
+
type: "range",
|
|
2641
|
+
value: pickedCount.value,
|
|
2642
|
+
onInput: _cache[1] || (_cache[1] = (event) => setCount(event))
|
|
2643
|
+
}, null, 40, _hoisted_18$1),
|
|
2644
|
+
createElementVNode("p", _hoisted_19$1, toDisplayString(pickedCount.value), 1),
|
|
2645
|
+
createElementVNode("button", {
|
|
2646
|
+
class: "cancel",
|
|
2647
|
+
"aria-label": __props.closeLabel,
|
|
2648
|
+
type: "button",
|
|
2649
|
+
onClick: _cache[2] || (_cache[2] = ($event) => goodId.value = 0)
|
|
2650
|
+
}, [..._cache[5] || (_cache[5] = [createElementVNode("svg", {
|
|
2651
|
+
viewBox: "0 0 24 24",
|
|
2652
|
+
"aria-hidden": "true"
|
|
2653
|
+
}, [createElementVNode("path", { d: "M6 6 18 18M18 6 6 18" })], -1)])], 8, _hoisted_20$1),
|
|
2654
|
+
createElementVNode("button", {
|
|
2655
|
+
class: "buy",
|
|
2656
|
+
disabled: __props.countMaximum < 1,
|
|
2657
|
+
type: "button",
|
|
2658
|
+
onClick: _cache[3] || (_cache[3] = ($event) => buy())
|
|
2659
|
+
}, toDisplayString(__props.buyLabel), 9, _hoisted_21$1)
|
|
2660
|
+
], 8, _hoisted_12$2)) : createCommentVNode("v-if", true)
|
|
2661
|
+
])], 2112);
|
|
2662
|
+
};
|
|
2663
|
+
}
|
|
2664
|
+
}), [["__scopeId", "data-v-af7ce84f"]]);
|
|
2665
|
+
//#endregion
|
|
2666
|
+
//#region src/components/WeaponMenu/Index.vue
|
|
2667
|
+
const _hoisted_1$5 = ["data-tab"];
|
|
2668
|
+
const _hoisted_2$4 = { class: "breadcrumb" };
|
|
2669
|
+
const _hoisted_3$4 = { class: "tabs" };
|
|
2670
|
+
const _hoisted_4$4 = ["aria-pressed", "onClick"];
|
|
2671
|
+
const _hoisted_5$4 = ["aria-label"];
|
|
2672
|
+
const _hoisted_6$4 = { class: "refinement" };
|
|
2673
|
+
const _hoisted_7$4 = { class: "level" };
|
|
2674
|
+
const _hoisted_8$2 = { class: "level-text" };
|
|
2675
|
+
const _hoisted_9$1 = { class: "sparks" };
|
|
2676
|
+
const _hoisted_10$1 = { class: "experience-text" };
|
|
2677
|
+
const _hoisted_11$1 = { class: "experience" };
|
|
2678
|
+
const _hoisted_12$1 = ["aria-label"];
|
|
2679
|
+
const _hoisted_13$1 = ["disabled"];
|
|
2680
|
+
const _hoisted_14$1 = ["aria-label"];
|
|
2681
|
+
var Index_default$35 = /*#__PURE__*/ export_helper_default(/* @__PURE__ */ defineComponent({
|
|
2682
|
+
__name: "Index",
|
|
2683
|
+
props: /*@__PURE__*/ mergeModels({
|
|
2684
|
+
actionLabel: {},
|
|
2685
|
+
ascension: {},
|
|
2686
|
+
closeLabel: {},
|
|
2687
|
+
experienceRatio: {},
|
|
2688
|
+
experienceText: {},
|
|
2689
|
+
isActionDisabled: { type: Boolean },
|
|
2690
|
+
levelText: {},
|
|
2691
|
+
name: {},
|
|
2692
|
+
rarity: {},
|
|
2693
|
+
refinement: {},
|
|
2694
|
+
tabs: {}
|
|
2695
|
+
}, {
|
|
2696
|
+
"tab": { required: true },
|
|
2697
|
+
"tabModifiers": {}
|
|
2698
|
+
}),
|
|
2699
|
+
emits: /*@__PURE__*/ mergeModels(["action", "close"], ["update:tab"]),
|
|
2700
|
+
setup(__props, { emit: __emit }) {
|
|
2701
|
+
const tab = useModel(__props, "tab");
|
|
2702
|
+
const emit = __emit;
|
|
2703
|
+
return (_ctx, _cache) => {
|
|
2704
|
+
return openBlock(), createElementBlock(Fragment, null, [createCommentVNode(" The weapon screen's frame: the weapon's name at the top left, the tabs down the left with the open one lit, and the\n open tab's panel down the right with its level, EXP, phase and refinement above it and its action beneath "), createElementVNode("div", {
|
|
2705
|
+
class: "weapon-menu",
|
|
2706
|
+
"data-tab": tab.value
|
|
2707
|
+
}, [
|
|
2708
|
+
createElementVNode("p", _hoisted_2$4, toDisplayString(__props.name), 1),
|
|
2709
|
+
createElementVNode("ul", _hoisted_3$4, [(openBlock(true), createElementBlock(Fragment, null, renderList(__props.tabs, (menuTab) => {
|
|
2710
|
+
return openBlock(), createElementBlock("li", { key: menuTab.tab }, [createElementVNode("button", {
|
|
2711
|
+
class: "tab",
|
|
2712
|
+
"aria-pressed": menuTab.tab === tab.value,
|
|
2713
|
+
type: "button",
|
|
2714
|
+
onClick: ($event) => tab.value = menuTab.tab
|
|
2715
|
+
}, toDisplayString(menuTab.label), 9, _hoisted_4$4)]);
|
|
2716
|
+
}), 128))]),
|
|
2717
|
+
createElementVNode("p", {
|
|
2718
|
+
class: "stars",
|
|
2719
|
+
"aria-label": `${__props.rarity}`
|
|
2720
|
+
}, [(openBlock(true), createElementBlock(Fragment, null, renderList(__props.rarity, (star) => {
|
|
2721
|
+
return openBlock(), createElementBlock("span", {
|
|
2722
|
+
key: star,
|
|
2723
|
+
class: "star"
|
|
2724
|
+
});
|
|
2725
|
+
}), 128))], 8, _hoisted_5$4),
|
|
2726
|
+
createElementVNode("p", _hoisted_6$4, toDisplayString(__props.refinement), 1),
|
|
2727
|
+
createElementVNode("p", _hoisted_7$4, [createElementVNode("span", _hoisted_8$2, toDisplayString(__props.levelText), 1), createElementVNode("span", _hoisted_9$1, [createCommentVNode(" The ascension phases, each a small star the phases reached light "), (openBlock(true), createElementBlock(Fragment, null, renderList(unref(6), (phase) => {
|
|
2728
|
+
return openBlock(), createElementBlock("span", {
|
|
2729
|
+
key: phase,
|
|
2730
|
+
class: normalizeClass(["spark", { lit: phase <= __props.ascension }])
|
|
2731
|
+
}, null, 2);
|
|
2732
|
+
}), 128))])]),
|
|
2733
|
+
createElementVNode("p", _hoisted_10$1, toDisplayString(__props.experienceText), 1),
|
|
2734
|
+
createElementVNode("span", _hoisted_11$1, [createElementVNode("span", {
|
|
2735
|
+
class: "fill",
|
|
2736
|
+
style: normalizeStyle({ "--experience-ratio": __props.experienceRatio })
|
|
2737
|
+
}, null, 4)]),
|
|
2738
|
+
createElementVNode("section", {
|
|
2739
|
+
class: "panel",
|
|
2740
|
+
"aria-label": __props.actionLabel
|
|
2741
|
+
}, [renderSlot(_ctx.$slots, "default", {}, void 0, true)], 8, _hoisted_12$1),
|
|
2742
|
+
createElementVNode("button", {
|
|
2743
|
+
class: "action",
|
|
2744
|
+
disabled: __props.isActionDisabled,
|
|
2745
|
+
type: "button",
|
|
2746
|
+
onClick: _cache[0] || (_cache[0] = ($event) => emit("action"))
|
|
2747
|
+
}, toDisplayString(__props.actionLabel), 9, _hoisted_13$1),
|
|
2748
|
+
createElementVNode("button", {
|
|
2749
|
+
class: "close",
|
|
2750
|
+
"aria-label": __props.closeLabel,
|
|
2751
|
+
type: "button",
|
|
2752
|
+
onClick: _cache[1] || (_cache[1] = ($event) => emit("close"))
|
|
2753
|
+
}, "↶", 8, _hoisted_14$1)
|
|
2754
|
+
], 8, _hoisted_1$5)], 2112);
|
|
2755
|
+
};
|
|
2756
|
+
}
|
|
2757
|
+
}), [["__scopeId", "data-v-f3f59f0e"]]);
|
|
2758
|
+
//#endregion
|
|
2759
|
+
//#region src/components/WishPath/Index.vue
|
|
2760
|
+
const _hoisted_1$4 = { class: "fate-points" };
|
|
2761
|
+
var Index_default$38 = /*#__PURE__*/ export_helper_default(/* @__PURE__ */ defineComponent({
|
|
2762
|
+
__name: "Index",
|
|
2763
|
+
props: {
|
|
2764
|
+
fatePoints: {},
|
|
2765
|
+
pathLabel: {}
|
|
2766
|
+
},
|
|
2767
|
+
setup(__props) {
|
|
2768
|
+
return (_ctx, _cache) => {
|
|
2769
|
+
return openBlock(), createElementBlock(Fragment, null, [createCommentVNode(" The Epitomized Path the weapon wish's banner holds, its name and its Fate Points as the game words and colours them "), createElementVNode("p", null, [createTextVNode(toDisplayString(__props.pathLabel) + " ", 1), createElementVNode("span", _hoisted_1$4, [(openBlock(true), createElementBlock(Fragment, null, renderList(__props.fatePoints, ({ color, text }, index) => {
|
|
2770
|
+
return openBlock(), createElementBlock("span", {
|
|
2771
|
+
key: index,
|
|
2772
|
+
style: normalizeStyle({ color })
|
|
2773
|
+
}, toDisplayString(text), 5);
|
|
2774
|
+
}), 128))])])], 2112);
|
|
2775
|
+
};
|
|
2776
|
+
}
|
|
2777
|
+
}), [["__scopeId", "data-v-2456390c"]]);
|
|
2778
|
+
//#endregion
|
|
2779
|
+
//#region src/components/WishDetails/Index.vue
|
|
2780
|
+
const _hoisted_1$3 = ["aria-label"];
|
|
2781
|
+
const _hoisted_2$3 = { class: "panel" };
|
|
2782
|
+
const _hoisted_3$3 = { class: "title" };
|
|
2783
|
+
const _hoisted_4$3 = ["aria-label"];
|
|
2784
|
+
const _hoisted_5$3 = { class: "pool" };
|
|
2785
|
+
const _hoisted_6$3 = { class: "pool-items" };
|
|
2786
|
+
const _hoisted_7$3 = ["data-featured"];
|
|
2787
|
+
var Index_default$36 = /*#__PURE__*/ export_helper_default(/* @__PURE__ */ defineComponent({
|
|
2788
|
+
__name: "Index",
|
|
2789
|
+
props: {
|
|
2790
|
+
closeLabel: {},
|
|
2791
|
+
fatePoints: {},
|
|
2792
|
+
pathLabel: {},
|
|
2793
|
+
pool: {},
|
|
2794
|
+
title: {}
|
|
2795
|
+
},
|
|
2796
|
+
emits: ["close"],
|
|
2797
|
+
setup(__props, { emit: __emit }) {
|
|
2798
|
+
const emit = __emit;
|
|
2799
|
+
const poolRarityCellsMap = computed(() => Map.groupBy(__props.pool, ({ rarity }) => rarity));
|
|
2800
|
+
return (_ctx, _cache) => {
|
|
2801
|
+
return openBlock(), createElementBlock(Fragment, null, [createCommentVNode(" The Details popup the wish screen's Details opens: the open banner's Pool by rarity, its Epitomized Path on the weapon\n Wish, over the wish screen until its close is clicked. Provisional: its place and size wait on a recording of the\n English Client's popup at 1080 high "), createElementVNode("div", {
|
|
2802
|
+
class: "wish-details",
|
|
2803
|
+
role: "dialog",
|
|
2804
|
+
"aria-label": __props.title
|
|
2805
|
+
}, [createElementVNode("div", _hoisted_2$3, [
|
|
2806
|
+
createElementVNode("p", _hoisted_3$3, toDisplayString(__props.title), 1),
|
|
2807
|
+
createElementVNode("button", {
|
|
2808
|
+
class: "close",
|
|
2809
|
+
type: "button",
|
|
2810
|
+
"aria-label": __props.closeLabel,
|
|
2811
|
+
onClick: _cache[0] || (_cache[0] = ($event) => emit("close"))
|
|
2812
|
+
}, "✕", 8, _hoisted_4$3),
|
|
2813
|
+
createElementVNode("ul", _hoisted_5$3, [(openBlock(true), createElementBlock(Fragment, null, renderList(poolRarityCellsMap.value, ([rarity, cells]) => {
|
|
2814
|
+
return openBlock(), createElementBlock("li", {
|
|
2815
|
+
key: rarity,
|
|
2816
|
+
class: "pool-rarity"
|
|
2817
|
+
}, [createVNode(Index_default$27, { rarity }, null, 8, ["rarity"]), createElementVNode("ul", _hoisted_6$3, [(openBlock(true), createElementBlock(Fragment, null, renderList(cells, ({ id, isFeatured, name }) => {
|
|
2818
|
+
return openBlock(), createElementBlock("li", {
|
|
2819
|
+
key: id,
|
|
2820
|
+
class: "pool-item",
|
|
2821
|
+
"data-featured": isFeatured
|
|
2822
|
+
}, toDisplayString(name), 9, _hoisted_7$3);
|
|
2823
|
+
}), 128))])]);
|
|
2824
|
+
}), 128))]),
|
|
2825
|
+
__props.pathLabel ? (openBlock(), createBlock(Index_default$38, {
|
|
2826
|
+
key: 0,
|
|
2827
|
+
"path-label": __props.pathLabel,
|
|
2828
|
+
"fate-points": __props.fatePoints
|
|
2829
|
+
}, null, 8, ["path-label", "fate-points"])) : createCommentVNode("v-if", true)
|
|
2830
|
+
])], 8, _hoisted_1$3)], 2112);
|
|
2831
|
+
};
|
|
2832
|
+
}
|
|
2833
|
+
}), [["__scopeId", "data-v-abdcc945"]]);
|
|
2834
|
+
//#endregion
|
|
2835
|
+
//#region src/components/WishHistory/Index.vue
|
|
2836
|
+
const _hoisted_1$2 = ["aria-label"];
|
|
2837
|
+
const _hoisted_2$2 = { class: "panel" };
|
|
2838
|
+
const _hoisted_3$2 = { class: "title" };
|
|
2839
|
+
const _hoisted_4$2 = ["aria-label"];
|
|
2840
|
+
const _hoisted_5$2 = { class: "draws" };
|
|
2841
|
+
const _hoisted_6$2 = { class: "time" };
|
|
2842
|
+
const _hoisted_7$2 = { class: "banner" };
|
|
2843
|
+
const _hoisted_8$1 = { class: "name" };
|
|
2844
|
+
var Index_default$37 = /*#__PURE__*/ export_helper_default(/* @__PURE__ */ defineComponent({
|
|
2845
|
+
__name: "Index",
|
|
2846
|
+
props: {
|
|
2847
|
+
closeLabel: {},
|
|
2848
|
+
history: {},
|
|
2849
|
+
title: {}
|
|
2850
|
+
},
|
|
2851
|
+
emits: ["close"],
|
|
2852
|
+
setup(__props, { emit: __emit }) {
|
|
2853
|
+
const emit = __emit;
|
|
2854
|
+
return (_ctx, _cache) => {
|
|
2855
|
+
return openBlock(), createElementBlock(Fragment, null, [createCommentVNode(" The History popup the wish screen's History opens: the draws of the last year, newest first, over the wish screen\n until its close is clicked. Provisional: its columns, their order and the time's format wait on a recording of the\n English Client's History at 1080 high "), createElementVNode("div", {
|
|
2856
|
+
class: "wish-history",
|
|
2857
|
+
role: "dialog",
|
|
2858
|
+
"aria-label": __props.title
|
|
2859
|
+
}, [createElementVNode("div", _hoisted_2$2, [
|
|
2860
|
+
createElementVNode("p", _hoisted_3$2, toDisplayString(__props.title), 1),
|
|
2861
|
+
createElementVNode("button", {
|
|
2862
|
+
class: "close",
|
|
2863
|
+
type: "button",
|
|
2864
|
+
"aria-label": __props.closeLabel,
|
|
2865
|
+
onClick: _cache[0] || (_cache[0] = ($event) => emit("close"))
|
|
2866
|
+
}, "✕", 8, _hoisted_4$2),
|
|
2867
|
+
createElementVNode("ul", _hoisted_5$2, [(openBlock(true), createElementBlock(Fragment, null, renderList(__props.history, ({ bannerLabel, name, rarity, time }, index) => {
|
|
2868
|
+
return openBlock(), createElementBlock("li", {
|
|
2869
|
+
key: index,
|
|
2870
|
+
class: "draw"
|
|
2871
|
+
}, [
|
|
2872
|
+
createElementVNode("span", _hoisted_6$2, toDisplayString(time), 1),
|
|
2873
|
+
createElementVNode("span", _hoisted_7$2, toDisplayString(bannerLabel), 1),
|
|
2874
|
+
createElementVNode("span", _hoisted_8$1, toDisplayString(name), 1),
|
|
2875
|
+
createVNode(Index_default$27, { rarity }, null, 8, ["rarity"])
|
|
2876
|
+
]);
|
|
2877
|
+
}), 128))])
|
|
2878
|
+
])], 8, _hoisted_1$2)], 2112);
|
|
2879
|
+
};
|
|
2880
|
+
}
|
|
2881
|
+
}), [["__scopeId", "data-v-86f92bab"]]);
|
|
2882
|
+
//#endregion
|
|
2883
|
+
//#region src/components/WishScreen/Index.vue
|
|
2884
|
+
const _hoisted_1$1 = { class: "wish-screen" };
|
|
2885
|
+
const _hoisted_2$1 = { class: "banners" };
|
|
2886
|
+
const _hoisted_3$1 = { class: "currencies" };
|
|
2887
|
+
const _hoisted_4$1 = { class: "currency-name" };
|
|
2888
|
+
const _hoisted_5$1 = {
|
|
2889
|
+
key: 0,
|
|
2890
|
+
class: "card"
|
|
2891
|
+
};
|
|
2892
|
+
const _hoisted_6$1 = { class: "tag" };
|
|
2893
|
+
const _hoisted_7$1 = { class: "card-title" };
|
|
2894
|
+
const _hoisted_8 = { class: "probability" };
|
|
2895
|
+
const _hoisted_9 = { class: "rate-up" };
|
|
2896
|
+
const _hoisted_10 = {
|
|
2897
|
+
key: 0,
|
|
2898
|
+
class: "featured"
|
|
2899
|
+
};
|
|
2900
|
+
const _hoisted_11 = { class: "featured-name" };
|
|
2901
|
+
const _hoisted_12 = { class: "featured-title" };
|
|
2902
|
+
const _hoisted_13 = { class: "links" };
|
|
2903
|
+
const _hoisted_14 = {
|
|
2904
|
+
key: 2,
|
|
2905
|
+
class: "sets"
|
|
2906
|
+
};
|
|
2907
|
+
const _hoisted_15 = { class: "set-label" };
|
|
2908
|
+
const _hoisted_16 = { class: "cost" };
|
|
2909
|
+
const _hoisted_17 = { class: "set-label" };
|
|
2910
|
+
const _hoisted_18 = { class: "cost" };
|
|
2911
|
+
const _hoisted_19 = { class: "result-list" };
|
|
2912
|
+
const _hoisted_20 = ["data-capturing-radiance", "data-rarity"];
|
|
2913
|
+
const _hoisted_21 = { class: "result-name" };
|
|
2914
|
+
const _hoisted_22 = {
|
|
2915
|
+
key: 0,
|
|
2916
|
+
class: "result-stella-fortuna"
|
|
2917
|
+
};
|
|
2918
|
+
const _hoisted_23 = { class: "result-return" };
|
|
2919
|
+
var Index_default$39 = /*#__PURE__*/ export_helper_default(/* @__PURE__ */ defineComponent({
|
|
2920
|
+
__name: "Index",
|
|
2921
|
+
props: /*@__PURE__*/ mergeModels({
|
|
2922
|
+
backLabel: {},
|
|
2923
|
+
bannerCard: {},
|
|
2924
|
+
banners: {},
|
|
2925
|
+
currencies: {},
|
|
2926
|
+
detailsLabel: {},
|
|
2927
|
+
fatePoints: {},
|
|
2928
|
+
history: {},
|
|
2929
|
+
historyLabel: {},
|
|
2930
|
+
pathLabel: {},
|
|
2931
|
+
pool: {},
|
|
2932
|
+
probabilityLabel: {},
|
|
2933
|
+
purchases: {},
|
|
2934
|
+
results: {},
|
|
2935
|
+
sets: {},
|
|
2936
|
+
shopLabel: {},
|
|
2937
|
+
title: {},
|
|
2938
|
+
trialLabel: {}
|
|
2939
|
+
}, {
|
|
2940
|
+
"bannerId": {},
|
|
2941
|
+
"bannerIdModifiers": {}
|
|
2942
|
+
}),
|
|
2943
|
+
emits: /*@__PURE__*/ mergeModels([
|
|
2944
|
+
"buy",
|
|
2945
|
+
"close",
|
|
2946
|
+
"dismiss",
|
|
2947
|
+
"trial",
|
|
2948
|
+
"wish"
|
|
2949
|
+
], ["update:bannerId"]),
|
|
2950
|
+
setup(__props, { emit: __emit }) {
|
|
2951
|
+
const bannerId = useModel(__props, "bannerId");
|
|
2952
|
+
const emit = __emit;
|
|
2953
|
+
const isDetailsOpen = ref(false);
|
|
2954
|
+
const isHistoryOpen = ref(false);
|
|
2955
|
+
const featuredCell = computed(() => __props.pool.find(({ isFeatured, rarity }) => isFeatured && rarity === 5));
|
|
2956
|
+
const getLabelText = (label) => label.map(({ text }) => text).join("");
|
|
2957
|
+
const bannerLabelText = computed(() => {
|
|
2958
|
+
const openBanner = __props.banners.find(({ id }) => id === bannerId.value);
|
|
2959
|
+
return openBanner && getLabelText(openBanner.label);
|
|
2960
|
+
});
|
|
2961
|
+
return (_ctx, _cache) => {
|
|
2962
|
+
return openBlock(), createElementBlock(Fragment, null, [createCommentVNode(" The wish, the F3 key's: the banners across the head with the counts and the way back beside them, the open banner's\n card over the screen with its promoted five-star, its ×1 and ×10 with their costs, and the Shop, Details and History\n Row under the card. Details opens the banner's pool over the screen, and over it all what the Last wishes drew, a card\n Each with its stars, until a click goes on. Provisional: every place, size and colour here waits on the wish's passes\n Against a recording of the English Client at 1080 high, and the banner card's art and the banners' tabs' portraits\n Are the plate's, which cannot ship "), createElementVNode("div", _hoisted_1$1, [
|
|
2963
|
+
createVNode(Index_default$30, {
|
|
2964
|
+
role: "heading",
|
|
2965
|
+
"aria-level": "1"
|
|
2966
|
+
}, {
|
|
2967
|
+
default: withCtx(() => [createTextVNode(toDisplayString(__props.title), 1)]),
|
|
2968
|
+
_: 1
|
|
2969
|
+
}),
|
|
2970
|
+
createElementVNode("ul", _hoisted_2$1, [(openBlock(true), createElementBlock(Fragment, null, renderList(__props.banners, (banner) => {
|
|
2971
|
+
return openBlock(), createElementBlock("li", { key: banner.id }, [createVNode(Index_default$16, {
|
|
2972
|
+
class: "banner",
|
|
2973
|
+
"aria-label": getLabelText(banner.label),
|
|
2974
|
+
"aria-pressed": banner.id === bannerId.value,
|
|
2975
|
+
kind: unref(GameButtonKind).Row,
|
|
2976
|
+
onClick: ($event) => bannerId.value = banner.id
|
|
2977
|
+
}, null, 8, [
|
|
2978
|
+
"aria-label",
|
|
2979
|
+
"aria-pressed",
|
|
2980
|
+
"kind",
|
|
2981
|
+
"onClick"
|
|
2982
|
+
])]);
|
|
2983
|
+
}), 128))]),
|
|
2984
|
+
createElementVNode("ul", _hoisted_3$1, [(openBlock(true), createElementBlock(Fragment, null, renderList(__props.currencies, ({ id, name, quantity }) => {
|
|
2985
|
+
return openBlock(), createElementBlock("li", {
|
|
2986
|
+
key: id,
|
|
2987
|
+
class: "currency"
|
|
2988
|
+
}, [createElementVNode("span", _hoisted_4$1, toDisplayString(name), 1), createTextVNode(" " + toDisplayString(quantity), 1)]);
|
|
2989
|
+
}), 128))]),
|
|
2990
|
+
createVNode(Index_default$16, {
|
|
2991
|
+
class: "back",
|
|
2992
|
+
"aria-label": __props.backLabel,
|
|
2993
|
+
kind: unref(GameButtonKind).Plain,
|
|
2994
|
+
onClick: _cache[0] || (_cache[0] = ($event) => emit("close"))
|
|
2995
|
+
}, {
|
|
2996
|
+
default: withCtx(() => [..._cache[8] || (_cache[8] = [createTextVNode("✕", -1)])]),
|
|
2997
|
+
_: 1
|
|
2998
|
+
}, 8, ["aria-label", "kind"]),
|
|
2999
|
+
__props.bannerCard && bannerLabelText.value ? (openBlock(), createElementBlock("section", _hoisted_5$1, [
|
|
3000
|
+
createElementVNode("p", _hoisted_6$1, toDisplayString(bannerLabelText.value), 1),
|
|
3001
|
+
createElementVNode("p", _hoisted_7$1, [(openBlock(true), createElementBlock(Fragment, null, renderList(__props.bannerCard.title, ({ color, text }, index) => {
|
|
3002
|
+
return openBlock(), createElementBlock("span", {
|
|
3003
|
+
key: index,
|
|
3004
|
+
style: normalizeStyle({ color })
|
|
3005
|
+
}, toDisplayString(text), 5);
|
|
3006
|
+
}), 128))]),
|
|
3007
|
+
createElementVNode("p", _hoisted_8, toDisplayString(__props.probabilityLabel), 1),
|
|
3008
|
+
createElementVNode("p", _hoisted_9, toDisplayString(__props.bannerCard.rateUp), 1),
|
|
3009
|
+
featuredCell.value ? (openBlock(), createElementBlock("div", _hoisted_10, [
|
|
3010
|
+
createElementVNode("p", _hoisted_11, toDisplayString(featuredCell.value.name), 1),
|
|
3011
|
+
createElementVNode("p", null, [createVNode(Index_default$27, { rarity: featuredCell.value.rarity }, null, 8, ["rarity"])]),
|
|
3012
|
+
createElementVNode("p", _hoisted_12, toDisplayString(__props.bannerCard.featuredTitle), 1)
|
|
3013
|
+
])) : createCommentVNode("v-if", true)
|
|
3014
|
+
])) : createCommentVNode("v-if", true),
|
|
3015
|
+
createElementVNode("div", _hoisted_13, [
|
|
3016
|
+
createVNode(Index_default$16, {
|
|
3017
|
+
class: "link",
|
|
3018
|
+
kind: unref(GameButtonKind).Reply
|
|
3019
|
+
}, {
|
|
3020
|
+
default: withCtx(() => [createTextVNode(toDisplayString(__props.shopLabel), 1)]),
|
|
3021
|
+
_: 1
|
|
3022
|
+
}, 8, ["kind"]),
|
|
3023
|
+
__props.trialLabel ? (openBlock(), createBlock(Index_default$16, {
|
|
3024
|
+
key: 0,
|
|
3025
|
+
class: "link trial",
|
|
3026
|
+
kind: unref(GameButtonKind).Reply,
|
|
3027
|
+
onClick: _cache[1] || (_cache[1] = ($event) => emit("trial"))
|
|
3028
|
+
}, {
|
|
3029
|
+
default: withCtx(() => [createTextVNode(toDisplayString(__props.trialLabel), 1)]),
|
|
3030
|
+
_: 1
|
|
3031
|
+
}, 8, ["kind"])) : createCommentVNode("v-if", true),
|
|
3032
|
+
createVNode(Index_default$16, {
|
|
3033
|
+
class: "link",
|
|
3034
|
+
kind: unref(GameButtonKind).Reply,
|
|
3035
|
+
onClick: _cache[2] || (_cache[2] = ($event) => isDetailsOpen.value = true)
|
|
3036
|
+
}, {
|
|
3037
|
+
default: withCtx(() => [createTextVNode(toDisplayString(__props.detailsLabel), 1)]),
|
|
3038
|
+
_: 1
|
|
3039
|
+
}, 8, ["kind"]),
|
|
3040
|
+
createVNode(Index_default$16, {
|
|
3041
|
+
class: "link",
|
|
3042
|
+
kind: unref(GameButtonKind).Reply,
|
|
3043
|
+
onClick: _cache[3] || (_cache[3] = ($event) => isHistoryOpen.value = true)
|
|
3044
|
+
}, {
|
|
3045
|
+
default: withCtx(() => [createTextVNode(toDisplayString(__props.historyLabel), 1)]),
|
|
3046
|
+
_: 1
|
|
3047
|
+
}, 8, ["kind"])
|
|
3048
|
+
]),
|
|
3049
|
+
__props.pathLabel ? (openBlock(), createBlock(Index_default$38, {
|
|
3050
|
+
key: 1,
|
|
3051
|
+
class: "path",
|
|
3052
|
+
"path-label": __props.pathLabel,
|
|
3053
|
+
"fate-points": __props.fatePoints
|
|
3054
|
+
}, null, 8, ["path-label", "fate-points"])) : createCommentVNode("v-if", true),
|
|
3055
|
+
bannerId.value ? (openBlock(), createElementBlock("div", _hoisted_14, [(openBlock(true), createElementBlock(Fragment, null, renderList(__props.sets, ({ cost, count, isAffordable, label }) => {
|
|
3056
|
+
return openBlock(), createBlock(Index_default$16, {
|
|
3057
|
+
key: count,
|
|
3058
|
+
class: "set",
|
|
3059
|
+
disabled: !isAffordable,
|
|
3060
|
+
kind: unref(GameButtonKind).Pill,
|
|
3061
|
+
onClick: ($event) => emit("wish", count)
|
|
3062
|
+
}, {
|
|
3063
|
+
default: withCtx(() => [createElementVNode("span", _hoisted_15, toDisplayString(label), 1), createElementVNode("span", _hoisted_16, toDisplayString(cost), 1)]),
|
|
3064
|
+
_: 2
|
|
3065
|
+
}, 1032, [
|
|
3066
|
+
"disabled",
|
|
3067
|
+
"kind",
|
|
3068
|
+
"onClick"
|
|
3069
|
+
]);
|
|
3070
|
+
}), 128)), (openBlock(true), createElementBlock(Fragment, null, renderList(__props.purchases, ({ cost, isAffordable, label }) => {
|
|
3071
|
+
return openBlock(), createBlock(Index_default$16, {
|
|
3072
|
+
key: label,
|
|
3073
|
+
class: "set",
|
|
3074
|
+
disabled: !isAffordable,
|
|
3075
|
+
kind: unref(GameButtonKind).Pill,
|
|
3076
|
+
onClick: _cache[4] || (_cache[4] = ($event) => emit("buy"))
|
|
3077
|
+
}, {
|
|
3078
|
+
default: withCtx(() => [createElementVNode("span", _hoisted_17, toDisplayString(label), 1), createElementVNode("span", _hoisted_18, toDisplayString(cost), 1)]),
|
|
3079
|
+
_: 2
|
|
3080
|
+
}, 1032, ["disabled", "kind"]);
|
|
3081
|
+
}), 128))])) : createCommentVNode("v-if", true),
|
|
3082
|
+
isDetailsOpen.value ? (openBlock(), createBlock(Index_default$36, {
|
|
3083
|
+
key: 3,
|
|
3084
|
+
"close-label": __props.backLabel,
|
|
3085
|
+
"fate-points": __props.fatePoints,
|
|
3086
|
+
"path-label": __props.pathLabel,
|
|
3087
|
+
pool: __props.pool,
|
|
3088
|
+
title: __props.detailsLabel,
|
|
3089
|
+
onClose: _cache[5] || (_cache[5] = ($event) => isDetailsOpen.value = false)
|
|
3090
|
+
}, null, 8, [
|
|
3091
|
+
"close-label",
|
|
3092
|
+
"fate-points",
|
|
3093
|
+
"path-label",
|
|
3094
|
+
"pool",
|
|
3095
|
+
"title"
|
|
3096
|
+
])) : createCommentVNode("v-if", true),
|
|
3097
|
+
isHistoryOpen.value ? (openBlock(), createBlock(Index_default$37, {
|
|
3098
|
+
key: 4,
|
|
3099
|
+
"close-label": __props.backLabel,
|
|
3100
|
+
history: __props.history,
|
|
3101
|
+
title: __props.historyLabel,
|
|
3102
|
+
onClose: _cache[6] || (_cache[6] = ($event) => isHistoryOpen.value = false)
|
|
3103
|
+
}, null, 8, [
|
|
3104
|
+
"close-label",
|
|
3105
|
+
"history",
|
|
3106
|
+
"title"
|
|
3107
|
+
])) : createCommentVNode("v-if", true),
|
|
3108
|
+
__props.results.length > 0 ? (openBlock(), createElementBlock("div", {
|
|
3109
|
+
key: 5,
|
|
3110
|
+
class: "results",
|
|
3111
|
+
onClick: _cache[7] || (_cache[7] = ($event) => emit("dismiss"))
|
|
3112
|
+
}, [createElementVNode("ul", _hoisted_19, [(openBlock(true), createElementBlock(Fragment, null, renderList(__props.results, ({ isCapturingRadiance, name, rarity, stellaFortuna, wishReturn }, index) => {
|
|
3113
|
+
return openBlock(), createElementBlock("li", {
|
|
3114
|
+
key: index,
|
|
3115
|
+
class: "result",
|
|
3116
|
+
"data-capturing-radiance": isCapturingRadiance,
|
|
3117
|
+
"data-rarity": rarity
|
|
3118
|
+
}, [
|
|
3119
|
+
createElementVNode("span", _hoisted_21, toDisplayString(name), 1),
|
|
3120
|
+
createVNode(Index_default$27, { rarity }, null, 8, ["rarity"]),
|
|
3121
|
+
stellaFortuna ? (openBlock(), createElementBlock("span", _hoisted_22, toDisplayString(stellaFortuna), 1)) : createCommentVNode("v-if", true),
|
|
3122
|
+
createElementVNode("span", _hoisted_23, toDisplayString(wishReturn), 1)
|
|
3123
|
+
], 8, _hoisted_20);
|
|
3124
|
+
}), 128))])])) : createCommentVNode("v-if", true)
|
|
3125
|
+
])], 2112);
|
|
3126
|
+
};
|
|
3127
|
+
}
|
|
3128
|
+
}), [["__scopeId", "data-v-669dc4ab"]]);
|
|
3129
|
+
//#endregion
|
|
3130
|
+
//#region src/models/WorshipLevelState.ts
|
|
3131
|
+
let WorshipLevelState = /* @__PURE__ */ function(WorshipLevelState) {
|
|
3132
|
+
WorshipLevelState["Claimable"] = "claimable";
|
|
3133
|
+
WorshipLevelState["Claimed"] = "claimed";
|
|
3134
|
+
WorshipLevelState["Locked"] = "locked";
|
|
3135
|
+
return WorshipLevelState;
|
|
3136
|
+
}({});
|
|
3137
|
+
//#endregion
|
|
3138
|
+
//#region src/components/WorshipScreen/Index.vue
|
|
3139
|
+
const _hoisted_1 = { class: "worship-screen" };
|
|
3140
|
+
const _hoisted_2 = { class: "title" };
|
|
3141
|
+
const _hoisted_3 = { class: "levels" };
|
|
3142
|
+
const _hoisted_4 = ["disabled"];
|
|
3143
|
+
const _hoisted_5 = { class: "level" };
|
|
3144
|
+
const _hoisted_6 = { class: "oculi" };
|
|
3145
|
+
const _hoisted_7 = { class: "rewards" };
|
|
3146
|
+
var Index_default$40 = /*#__PURE__*/ export_helper_default(/* @__PURE__ */ defineComponent({
|
|
3147
|
+
__name: "Index",
|
|
3148
|
+
props: {
|
|
3149
|
+
blessingTitle: {},
|
|
3150
|
+
heldCount: {},
|
|
3151
|
+
levels: {},
|
|
3152
|
+
title: {}
|
|
3153
|
+
},
|
|
3154
|
+
emits: [
|
|
3155
|
+
"blessing",
|
|
3156
|
+
"claim",
|
|
3157
|
+
"close",
|
|
3158
|
+
"offer"
|
|
3159
|
+
],
|
|
3160
|
+
setup(__props, { emit: __emit }) {
|
|
3161
|
+
const emit = __emit;
|
|
3162
|
+
const nextClaimableLevel = computed(() => __props.levels.find(({ state }) => state === "claimable")?.level);
|
|
3163
|
+
return (_ctx, _cache) => {
|
|
3164
|
+
return openBlock(), createElementBlock(Fragment, null, [createCommentVNode(" The layout is provisional until the recording of the Worship screen shows it "), createElementVNode("div", _hoisted_1, [
|
|
3165
|
+
createElementVNode("h1", _hoisted_2, toDisplayString(__props.title), 1),
|
|
3166
|
+
createElementVNode("button", {
|
|
3167
|
+
class: "close",
|
|
3168
|
+
type: "button",
|
|
3169
|
+
onClick: _cache[0] || (_cache[0] = ($event) => emit("close"))
|
|
3170
|
+
}, "×"),
|
|
3171
|
+
createElementVNode("button", {
|
|
3172
|
+
class: "blessing",
|
|
3173
|
+
type: "button",
|
|
3174
|
+
onClick: _cache[1] || (_cache[1] = ($event) => emit("blessing"))
|
|
3175
|
+
}, toDisplayString(__props.blessingTitle), 1),
|
|
3176
|
+
createElementVNode("button", {
|
|
3177
|
+
class: "held",
|
|
3178
|
+
type: "button",
|
|
3179
|
+
onClick: _cache[2] || (_cache[2] = ($event) => emit("offer"))
|
|
3180
|
+
}, toDisplayString(__props.heldCount), 1),
|
|
3181
|
+
createElementVNode("ol", _hoisted_3, [(openBlock(true), createElementBlock(Fragment, null, renderList(__props.levels, ({ level, oculusCount, rewards, state }) => {
|
|
3182
|
+
return openBlock(), createElementBlock("li", {
|
|
3183
|
+
key: level,
|
|
3184
|
+
class: normalizeClass(state)
|
|
3185
|
+
}, [createElementVNode("button", {
|
|
3186
|
+
type: "button",
|
|
3187
|
+
disabled: level !== nextClaimableLevel.value,
|
|
3188
|
+
onClick: _cache[3] || (_cache[3] = ($event) => emit("claim"))
|
|
3189
|
+
}, [
|
|
3190
|
+
createElementVNode("span", _hoisted_5, toDisplayString(level), 1),
|
|
3191
|
+
createElementVNode("span", _hoisted_6, toDisplayString(oculusCount), 1),
|
|
3192
|
+
createElementVNode("span", _hoisted_7, [(openBlock(true), createElementBlock(Fragment, null, renderList(rewards, ({ count, name }) => {
|
|
3193
|
+
return openBlock(), createElementBlock("span", { key: name }, toDisplayString(name) + " × " + toDisplayString(count), 1);
|
|
3194
|
+
}), 128))])
|
|
3195
|
+
], 8, _hoisted_4)], 2);
|
|
3196
|
+
}), 128))])
|
|
3197
|
+
])], 2112);
|
|
3198
|
+
};
|
|
3199
|
+
}
|
|
3200
|
+
}), [["__scopeId", "data-v-529b74f5"]]);
|
|
3201
|
+
//#endregion
|
|
3202
|
+
//#region src/models/InteractionKind.ts
|
|
3203
|
+
let InteractionKind = /* @__PURE__ */ function(InteractionKind) {
|
|
3204
|
+
InteractionKind["Activate"] = "Activate";
|
|
3205
|
+
InteractionKind["Claim"] = "Claim";
|
|
3206
|
+
InteractionKind["Dig"] = "Dig";
|
|
3207
|
+
InteractionKind["Open"] = "Open";
|
|
3208
|
+
InteractionKind["PickUp"] = "PickUp";
|
|
3209
|
+
InteractionKind["Read"] = "Read";
|
|
3210
|
+
InteractionKind["Talk"] = "Talk";
|
|
3211
|
+
InteractionKind["Use"] = "Use";
|
|
3212
|
+
return InteractionKind;
|
|
3213
|
+
}({});
|
|
3214
|
+
//#endregion
|
|
3215
|
+
//#region src/models/InteractionState.ts
|
|
3216
|
+
let InteractionState = /* @__PURE__ */ function(InteractionState) {
|
|
3217
|
+
InteractionState["Hover"] = "Hover";
|
|
3218
|
+
InteractionState["Pressed"] = "Pressed";
|
|
3219
|
+
return InteractionState;
|
|
3220
|
+
}({});
|
|
3221
|
+
//#endregion
|
|
3222
|
+
//#region src/models/InterfaceClipProperty.ts
|
|
3223
|
+
let InterfaceClipProperty = /* @__PURE__ */ function(InterfaceClipProperty) {
|
|
3224
|
+
InterfaceClipProperty["Opacity"] = "opacity";
|
|
3225
|
+
InterfaceClipProperty["Scale"] = "scale";
|
|
3226
|
+
InterfaceClipProperty["X"] = "x";
|
|
3227
|
+
InterfaceClipProperty["Y"] = "y";
|
|
3228
|
+
return InterfaceClipProperty;
|
|
3229
|
+
}({});
|
|
3230
|
+
const InterfaceClipProperties = Object.values(InterfaceClipProperty);
|
|
3231
|
+
//#endregion
|
|
3232
|
+
//#region src/models/WeaponMenuTab.ts
|
|
3233
|
+
let WeaponMenuTab = /* @__PURE__ */ function(WeaponMenuTab) {
|
|
3234
|
+
WeaponMenuTab["Ascend"] = "Ascend";
|
|
3235
|
+
WeaponMenuTab["Enhance"] = "Enhance";
|
|
3236
|
+
WeaponMenuTab["Refine"] = "Refine";
|
|
3237
|
+
return WeaponMenuTab;
|
|
3238
|
+
}({});
|
|
3239
|
+
//#endregion
|
|
3240
|
+
//#region src/models/reference/GameSourceKind.ts
|
|
3241
|
+
let GameSourceKind = /* @__PURE__ */ function(GameSourceKind) {
|
|
3242
|
+
GameSourceKind["AnimationClip"] = "AnimationClip";
|
|
3243
|
+
GameSourceKind["Avatar"] = "Avatar";
|
|
3244
|
+
GameSourceKind["BinaryData"] = "MiHoYoBinData";
|
|
3245
|
+
GameSourceKind["Capture"] = "Capture";
|
|
3246
|
+
GameSourceKind["DataTable"] = "DataTable";
|
|
3247
|
+
GameSourceKind["GameObject"] = "GameObject";
|
|
3248
|
+
GameSourceKind["Material"] = "Material";
|
|
3249
|
+
GameSourceKind["Mesh"] = "Mesh";
|
|
3250
|
+
GameSourceKind["MonoBehaviour"] = "MonoBehaviour";
|
|
3251
|
+
GameSourceKind["RectTransform"] = "RectTransform";
|
|
3252
|
+
GameSourceKind["Shader"] = "Shader";
|
|
3253
|
+
GameSourceKind["Sound"] = "Sound";
|
|
3254
|
+
GameSourceKind["TerrainData"] = "TerrainData";
|
|
3255
|
+
GameSourceKind["Texture"] = "Texture";
|
|
3256
|
+
GameSourceKind["Transform"] = "Transform";
|
|
3257
|
+
return GameSourceKind;
|
|
3258
|
+
}({});
|
|
3259
|
+
//#endregion
|
|
3260
|
+
//#region src/models/reference/InvestigationOutcome.ts
|
|
3261
|
+
let InvestigationOutcome = /* @__PURE__ */ function(InvestigationOutcome) {
|
|
3262
|
+
InvestigationOutcome["Adopted"] = "Adopted";
|
|
3263
|
+
InvestigationOutcome["DeadEnd"] = "DeadEnd";
|
|
3264
|
+
InvestigationOutcome["Found"] = "Found";
|
|
3265
|
+
InvestigationOutcome["Rejected"] = "Rejected";
|
|
3266
|
+
InvestigationOutcome["Superseded"] = "Superseded";
|
|
3267
|
+
return InvestigationOutcome;
|
|
3268
|
+
}({});
|
|
3269
|
+
//#endregion
|
|
3270
|
+
//#region src/services/playInterfaceClip.ts
|
|
3271
|
+
const InterfaceClipPropertyKeyframeMap = {
|
|
3272
|
+
["opacity"]: (value) => ({ opacity: value }),
|
|
3273
|
+
["scale"]: (value) => ({ scale: String(value) }),
|
|
3274
|
+
["x"]: (value) => ({ translate: `calc(var(--canvas-unit) * ${value}) 0` }),
|
|
3275
|
+
["y"]: (value) => ({ translate: `0 calc(var(--canvas-unit) * ${-value})` })
|
|
3276
|
+
};
|
|
3277
|
+
const playInterfaceClip = (root, { durationMs, tracks }) => tracks.flatMap(({ keyframes, property, target }) => {
|
|
3278
|
+
const element = target ? root.querySelector(`[data-clip-target="${target}"]`) : root;
|
|
3279
|
+
if (!element) return [];
|
|
3280
|
+
return [element.animate(keyframes.map(([offset, value]) => ({
|
|
3281
|
+
...InterfaceClipPropertyKeyframeMap[property](value),
|
|
3282
|
+
offset
|
|
3283
|
+
})), {
|
|
3284
|
+
composite: property === "x" || property === "y" ? "add" : "replace",
|
|
3285
|
+
duration: durationMs,
|
|
3286
|
+
fill: "forwards"
|
|
3287
|
+
})];
|
|
3288
|
+
});
|
|
3289
|
+
//#endregion
|
|
3290
|
+
//#region src/services/toInterfaceClip.ts
|
|
3291
|
+
const INTERFACE_CLIP_PROPERTY_NAMES = InterfaceClipProperties;
|
|
3292
|
+
const checkIsProperty = (property) => INTERFACE_CLIP_PROPERTY_NAMES.includes(property);
|
|
3293
|
+
const toInterfaceClip = ({ durationMs, tracks }) => ({
|
|
3294
|
+
durationMs,
|
|
3295
|
+
tracks: tracks.flatMap(({ keyframes, property, target }) => checkIsProperty(property) ? [{
|
|
3296
|
+
keyframes: keyframes.map(([offset = 0, value = 0]) => [offset, value]),
|
|
3297
|
+
property,
|
|
3298
|
+
target
|
|
3299
|
+
}] : [])
|
|
3300
|
+
});
|
|
3301
|
+
//#endregion
|
|
3302
|
+
export { ASCENSION_PHASE_COUNT, Index_default as ArtifactEnhancePicker, Index_default$1 as ArtifactPicker, BannerKind, BannerKinds, Index_default$2 as BlessingScreen, CHECK_MARK_PATH, CONSTELLATION_NODE_PLACES, COOKING_ARC_CENTRE_X, COOKING_ARC_CENTRE_Y, COOKING_ARC_RADIUS_X, COOKING_ARC_RADIUS_Y, Index_default$3 as CharacterMenu, Index_default$4 as CharacterMenuArtifacts, Index_default$5 as CharacterMenuButtons, Index_default$6 as CharacterMenuConstellation, Index_default$7 as CharacterMenuProfile, CharacterMenuTab, CharacterMenuTabs, Index_default$8 as CharacterMenuTalents, Index_default$9 as CharacterMenuWeapons, Index_default$10 as CookingScreen, Index_default$11 as CraftingScreen, DialogueChoiceIcon, DialogueChoiceIconPathMap, Index_default$12 as DialogueScreen, Index_default$13 as DiscButton, ExpeditionActionKind, Index_default$14 as ExpeditionScreen, FIXTURE_VARIANT_SEPARATOR, ForgeQueueState, Index_default$15 as ForgeScreen, ForgeTab, GAME_CANVAS_INSET, GAME_CANVAS_RECT, GAME_CANVAS_UNIT, GAME_CREAM, GAME_CURSOR, GAME_FONT_FAMILY, GAME_GOLD, GAME_INK, GAME_REPLY_HOVER, GAME_REPLY_HOVER_INK, GAME_REPLY_REST, GAME_ROW_HOVER, GAME_ROW_PRESS, GAME_SMOOTHSTEP_EASING, GAME_UNIT, GAME_WHITE, Index_default$16 as GameButton, GameButtonKind, _sfc_main as GameRect, Index_default$17 as GameScreen, GameSourceKind, INTERACTION_HOVER_MS, INTERACTION_KEY_LABEL, INTERACTION_PILL_REST_MS, INTERACTION_PRESS_MS, INTERACTION_REST_MS, InteractionKind, Index_default$18 as InteractionPrompts, InteractionState, InterfaceClipProperties, InterfaceClipProperty, InterfaceIcon, InterfaceIconCentreMap, InterfaceIconPathMap, InterfaceIcons, Index_default$19 as InventoryScreen, InventorySort, InventorySorts, InvestigationOutcome, ItemCategories, ItemCategory, Index_default$20 as ItemTile, Index_default$21 as LoadingSpinner, MOBILE_INTERFACE_SCALE, ORNAMENT_END_PATH, ORNAMENT_MIDDLE_PATH, Index_default$22 as OrnamentDivider, Index_default$23 as PartySetupScreen, Index_default$24 as PickerShell, Index_default$25 as ProgressBar, Index_default$26 as PromptBand, Index_default$27 as RarityStars, Index_default$28 as ReputationScreen, Index_default$29 as RoundButton, SERVER_MARK_DIAMOND_PATH, SERVER_MARK_TICK_PATH, SETTINGS_RING_CENTRE, SETTINGS_RING_RADIUS, SETTINGS_RING_WIDTH, Index_default$30 as ScreenTitle, Index_default$31 as ServerBar, Index_default$32 as ShopScreen, Index_default$33 as ToastNotice, Index_default$34 as TwoColumnScreen, Index_default$35 as WeaponMenu, WeaponMenuTab, Index_default$36 as WishDetails, Index_default$37 as WishHistory, Index_default$38 as WishPath, Index_default$39 as WishScreen, WorshipLevelState, Index_default$40 as WorshipScreen, computeRectOffsets, playInterfaceClip, toCanvasRect, toCanvasRectStyle, toInterfaceClip };
|