@rpgjs/client 5.0.0-alpha.43 → 5.0.0-alpha.44

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (137) hide show
  1. package/dist/Game/AnimationManager.js +25 -24
  2. package/dist/Game/AnimationManager.js.map +1 -1
  3. package/dist/Game/Event.js +11 -10
  4. package/dist/Game/Event.js.map +1 -1
  5. package/dist/Game/Map.js +78 -94
  6. package/dist/Game/Map.js.map +1 -1
  7. package/dist/Game/Object.js +182 -216
  8. package/dist/Game/Object.js.map +1 -1
  9. package/dist/Game/Player.js +11 -10
  10. package/dist/Game/Player.js.map +1 -1
  11. package/dist/Gui/Gui.js +440 -473
  12. package/dist/Gui/Gui.js.map +1 -1
  13. package/dist/Gui/NotificationManager.js +48 -50
  14. package/dist/Gui/NotificationManager.js.map +1 -1
  15. package/dist/Resource.js +132 -113
  16. package/dist/Resource.js.map +1 -1
  17. package/dist/RpgClientEngine.js +1333 -1486
  18. package/dist/RpgClientEngine.js.map +1 -1
  19. package/dist/Sound.js +162 -92
  20. package/dist/Sound.js.map +1 -1
  21. package/dist/_virtual/_@oxc-project_runtime@0.115.0/helpers/decorate.js +9 -0
  22. package/dist/_virtual/_@oxc-project_runtime@0.115.0/helpers/decorateMetadata.js +6 -0
  23. package/dist/components/animations/animation.ce.js +22 -19
  24. package/dist/components/animations/animation.ce.js.map +1 -1
  25. package/dist/components/animations/hit.ce.js +67 -68
  26. package/dist/components/animations/hit.ce.js.map +1 -1
  27. package/dist/components/animations/index.js +9 -8
  28. package/dist/components/animations/index.js.map +1 -1
  29. package/dist/components/character.ce.js +390 -314
  30. package/dist/components/character.ce.js.map +1 -1
  31. package/dist/components/dynamics/parse-value.js +42 -52
  32. package/dist/components/dynamics/parse-value.js.map +1 -1
  33. package/dist/components/dynamics/text.ce.js +71 -139
  34. package/dist/components/dynamics/text.ce.js.map +1 -1
  35. package/dist/components/gui/box.ce.js +26 -25
  36. package/dist/components/gui/box.ce.js.map +1 -1
  37. package/dist/components/gui/dialogbox/index.ce.js +202 -149
  38. package/dist/components/gui/dialogbox/index.ce.js.map +1 -1
  39. package/dist/components/gui/gameover.ce.js +190 -138
  40. package/dist/components/gui/gameover.ce.js.map +1 -1
  41. package/dist/components/gui/hud/hud.ce.js +90 -33
  42. package/dist/components/gui/hud/hud.ce.js.map +1 -1
  43. package/dist/components/gui/index.js +14 -0
  44. package/dist/components/gui/menu/equip-menu.ce.js +478 -346
  45. package/dist/components/gui/menu/equip-menu.ce.js.map +1 -1
  46. package/dist/components/gui/menu/exit-menu.ce.js +52 -33
  47. package/dist/components/gui/menu/exit-menu.ce.js.map +1 -1
  48. package/dist/components/gui/menu/items-menu.ce.js +341 -226
  49. package/dist/components/gui/menu/items-menu.ce.js.map +1 -1
  50. package/dist/components/gui/menu/main-menu.ce.js +414 -205
  51. package/dist/components/gui/menu/main-menu.ce.js.map +1 -1
  52. package/dist/components/gui/menu/options-menu.ce.js +46 -26
  53. package/dist/components/gui/menu/options-menu.ce.js.map +1 -1
  54. package/dist/components/gui/menu/skills-menu.ce.js +104 -50
  55. package/dist/components/gui/menu/skills-menu.ce.js.map +1 -1
  56. package/dist/components/gui/mobile/index.js +18 -21
  57. package/dist/components/gui/mobile/index.js.map +1 -1
  58. package/dist/components/gui/mobile/mobile.ce.js +76 -15
  59. package/dist/components/gui/mobile/mobile.ce.js.map +1 -1
  60. package/dist/components/gui/notification/notification.ce.js +62 -36
  61. package/dist/components/gui/notification/notification.ce.js.map +1 -1
  62. package/dist/components/gui/save-load.ce.js +386 -239
  63. package/dist/components/gui/save-load.ce.js.map +1 -1
  64. package/dist/components/gui/shop/shop.ce.js +649 -319
  65. package/dist/components/gui/shop/shop.ce.js.map +1 -1
  66. package/dist/components/gui/title-screen.ce.js +187 -145
  67. package/dist/components/gui/title-screen.ce.js.map +1 -1
  68. package/dist/components/index.js +4 -0
  69. package/dist/components/prebuilt/hp-bar.ce.js +114 -104
  70. package/dist/components/prebuilt/hp-bar.ce.js.map +1 -1
  71. package/dist/components/prebuilt/index.js +2 -0
  72. package/dist/components/prebuilt/light-halo.ce.js +92 -74
  73. package/dist/components/prebuilt/light-halo.ce.js.map +1 -1
  74. package/dist/components/scenes/canvas.ce.js +58 -42
  75. package/dist/components/scenes/canvas.ce.js.map +1 -1
  76. package/dist/components/scenes/draw-map.ce.js +87 -64
  77. package/dist/components/scenes/draw-map.ce.js.map +1 -1
  78. package/dist/components/scenes/event-layer.ce.js +26 -16
  79. package/dist/components/scenes/event-layer.ce.js.map +1 -1
  80. package/dist/core/inject.js +11 -10
  81. package/dist/core/inject.js.map +1 -1
  82. package/dist/core/setup.js +13 -13
  83. package/dist/core/setup.js.map +1 -1
  84. package/dist/index.js +44 -41
  85. package/dist/module.js +169 -168
  86. package/dist/module.js.map +1 -1
  87. package/dist/node_modules/.pnpm/@signe_di@2.8.3/node_modules/@signe/di/dist/index.js +209 -298
  88. package/dist/node_modules/.pnpm/@signe_di@2.8.3/node_modules/@signe/di/dist/index.js.map +1 -1
  89. package/dist/node_modules/.pnpm/@signe_reactive@2.8.3/node_modules/@signe/reactive/dist/index.js +430 -507
  90. package/dist/node_modules/.pnpm/@signe_reactive@2.8.3/node_modules/@signe/reactive/dist/index.js.map +1 -1
  91. package/dist/node_modules/.pnpm/@signe_room@2.8.3/node_modules/@signe/room/dist/index.js +2062 -2571
  92. package/dist/node_modules/.pnpm/@signe_room@2.8.3/node_modules/@signe/room/dist/index.js.map +1 -1
  93. package/dist/node_modules/.pnpm/@signe_sync@2.8.3/node_modules/@signe/sync/dist/chunk-7QVYU63E.js +8 -3
  94. package/dist/node_modules/.pnpm/@signe_sync@2.8.3/node_modules/@signe/sync/dist/chunk-7QVYU63E.js.map +1 -1
  95. package/dist/node_modules/.pnpm/@signe_sync@2.8.3/node_modules/@signe/sync/dist/client/index.js +78 -101
  96. package/dist/node_modules/.pnpm/@signe_sync@2.8.3/node_modules/@signe/sync/dist/client/index.js.map +1 -1
  97. package/dist/node_modules/.pnpm/@signe_sync@2.8.3/node_modules/@signe/sync/dist/index.js +264 -401
  98. package/dist/node_modules/.pnpm/@signe_sync@2.8.3/node_modules/@signe/sync/dist/index.js.map +1 -1
  99. package/dist/node_modules/.pnpm/dset@3.1.4/node_modules/dset/dist/index.js +9 -7
  100. package/dist/node_modules/.pnpm/dset@3.1.4/node_modules/dset/dist/index.js.map +1 -1
  101. package/dist/node_modules/.pnpm/partysocket@1.1.3/node_modules/partysocket/dist/chunk-HAC622V3.js +106 -165
  102. package/dist/node_modules/.pnpm/partysocket@1.1.3/node_modules/partysocket/dist/chunk-HAC622V3.js.map +1 -1
  103. package/dist/node_modules/.pnpm/partysocket@1.1.3/node_modules/partysocket/dist/chunk-S74YV6PU.js +361 -461
  104. package/dist/node_modules/.pnpm/partysocket@1.1.3/node_modules/partysocket/dist/chunk-S74YV6PU.js.map +1 -1
  105. package/dist/node_modules/.pnpm/partysocket@1.1.3/node_modules/partysocket/dist/index.js +2 -0
  106. package/dist/node_modules/.pnpm/zod@3.24.2/node_modules/zod/lib/index.js +3633 -4280
  107. package/dist/node_modules/.pnpm/zod@3.24.2/node_modules/zod/lib/index.js.map +1 -1
  108. package/dist/presets/animation.js +37 -25
  109. package/dist/presets/animation.js.map +1 -1
  110. package/dist/presets/faceset.js +49 -22
  111. package/dist/presets/faceset.js.map +1 -1
  112. package/dist/presets/icon.js +13 -13
  113. package/dist/presets/icon.js.map +1 -1
  114. package/dist/presets/index.js +15 -14
  115. package/dist/presets/index.js.map +1 -1
  116. package/dist/presets/lpc.js +96 -93
  117. package/dist/presets/lpc.js.map +1 -1
  118. package/dist/presets/rmspritesheet.js +40 -39
  119. package/dist/presets/rmspritesheet.js.map +1 -1
  120. package/dist/services/AbstractSocket.js +10 -8
  121. package/dist/services/AbstractSocket.js.map +1 -1
  122. package/dist/services/keyboardControls.js +20 -18
  123. package/dist/services/keyboardControls.js.map +1 -1
  124. package/dist/services/loadMap.js +120 -36
  125. package/dist/services/loadMap.js.map +1 -1
  126. package/dist/services/mmorpg.js +128 -136
  127. package/dist/services/mmorpg.js.map +1 -1
  128. package/dist/services/save.js +74 -66
  129. package/dist/services/save.js.map +1 -1
  130. package/dist/services/standalone.js +165 -167
  131. package/dist/services/standalone.js.map +1 -1
  132. package/dist/utils/getEntityProp.js +49 -51
  133. package/dist/utils/getEntityProp.js.map +1 -1
  134. package/package.json +8 -8
  135. package/src/components/character.ce +1 -1
  136. package/src/components/scenes/draw-map.ce +3 -1
  137. package/dist/index.js.map +0 -1
@@ -1,208 +1,417 @@
1
- import { useProps, useDefineProps, computed, signal, effect, mount, h, DOMContainer, DOMElement, cond, loop } from 'canvasengine';
2
- import { inject } from '../../../core/inject.js';
3
- import { RpgClientEngine } from '../../../RpgClientEngine.js';
4
- import component$6 from '../save-load.ce.js';
5
- import component$1 from './items-menu.ce.js';
6
- import component$2 from './skills-menu.ce.js';
7
- import component$3 from './equip-menu.ce.js';
8
- import component$4 from './options-menu.ce.js';
9
- import component$5 from './exit-menu.ce.js';
10
- import { getEntityProp } from '../../../utils/getEntityProp.js';
11
- import { delay } from '@rpgjs/common';
12
-
1
+ import { inject } from "../../../core/inject.js";
2
+ import { getEntityProp } from "../../../utils/getEntityProp.js";
3
+ import component$1 from "../save-load.ce.js";
4
+ import component$2 from "./items-menu.ce.js";
5
+ import component$3 from "./skills-menu.ce.js";
6
+ import component$4 from "./equip-menu.ce.js";
7
+ import component$5 from "./options-menu.ce.js";
8
+ import component$6 from "./exit-menu.ce.js";
9
+ import { RpgClientEngine } from "../../../RpgClientEngine.js";
10
+ import { DOMContainer, DOMElement, computed, cond, effect, h, loop, mount, signal, useDefineProps, useProps } from "canvasengine";
11
+ import { delay } from "@rpgjs/common";
12
+ //#region src/components/gui/menu/main-menu.ce
13
13
  function component($$props) {
14
- useProps($$props);
15
- const defineProps = useDefineProps($$props);
16
- var engine = inject(RpgClientEngine);
17
- var currentPlayer = engine.scene.currentPlayer;
18
- var keyboardControls = engine.globalConfig.keyboardControls;
19
- var _a = defineProps(), data = _a.data, onFinish = _a.onFinish, onInteraction = _a.onInteraction;
20
- var _b = data(), menus = _b.menus; _b.items; _b.skills; _b.equips; var saveLoad = _b.saveLoad;
21
- var defaultMenus = [
22
- { id: "items", label: "Items" },
23
- { id: "skills", label: "Skills" },
24
- { id: "equip", label: "Equip" },
25
- { id: "options", label: "Options" },
26
- { id: "save", label: "Save" },
27
- { id: "exit", label: "Exit" }
28
- ];
29
- var menuEntries = computed(function () {
30
- if (menus && Array.isArray(menus) && menus.length)
31
- return menus;
32
- return defaultMenus;
33
- });
34
- var resolveProp = function (value) { return typeof value === "function" ? value() : value; };
35
- var saveLoadData = computed(function () { return resolveProp(saveLoad) || {}; });
36
- computed(function () { return saveLoadData().mode || "load"; });
37
- computed(function () { return saveLoadData().slots || []; });
38
- var saveLoadCanSave = computed(function () { return saveLoadData().canSave !== false; });
39
- var isMenuDisabled = function (entry) {
40
- if (!entry)
41
- return true;
42
- if (entry.disabled)
43
- return true;
44
- if (entry.enabled === false)
45
- return true;
46
- if (entry.id === "save" && !saveLoadCanSave())
47
- return true;
48
- return false;
49
- };
50
- var selectedMenu = signal(0);
51
- var view = signal("menu");
52
- var saveOverlay = signal(false);
53
- var selectableIndexes = computed(function () {
54
- var entries = menuEntries();
55
- return entries
56
- .map(function (entry, index) { return (isMenuDisabled(entry) ? null : index); })
57
- .filter(function (value) { return value !== null; });
58
- });
59
- effect(function () {
60
- var available = selectableIndexes();
61
- if (!available.length)
62
- return;
63
- var current = selectedMenu();
64
- if (!available.includes(current)) {
65
- selectedMenu.set(available[0]);
66
- }
67
- });
68
- var moveMenu = function (delta) {
69
- var available = selectableIndexes();
70
- if (!available.length)
71
- return;
72
- var current = selectedMenu();
73
- var currentIndex = Math.max(0, available.indexOf(current));
74
- var nextIndex = (currentIndex + delta + available.length) % available.length;
75
- selectedMenu.set(available[nextIndex]);
76
- };
77
- function selectMenu(index) {
78
- return function () {
79
- selectedMenu.set(index);
80
- openMenu();
81
- };
14
+ useProps($$props);
15
+ const defineProps = useDefineProps($$props);
16
+ var engine = inject(RpgClientEngine);
17
+ var currentPlayer = engine.scene.currentPlayer;
18
+ var keyboardControls = engine.globalConfig.keyboardControls;
19
+ var _a = defineProps(), data = _a.data, onFinish = _a.onFinish, onInteraction = _a.onInteraction, _b = data(), menus = _b.menus;
20
+ _b.items;
21
+ _b.skills;
22
+ _b.equips;
23
+ var saveLoad = _b.saveLoad;
24
+ var defaultMenus = [
25
+ {
26
+ id: "items",
27
+ label: "Items"
28
+ },
29
+ {
30
+ id: "skills",
31
+ label: "Skills"
32
+ },
33
+ {
34
+ id: "equip",
35
+ label: "Equip"
36
+ },
37
+ {
38
+ id: "options",
39
+ label: "Options"
40
+ },
41
+ {
42
+ id: "save",
43
+ label: "Save"
44
+ },
45
+ {
46
+ id: "exit",
47
+ label: "Exit"
48
+ }
49
+ ];
50
+ var menuEntries = computed(function() {
51
+ if (menus && Array.isArray(menus) && menus.length) return menus;
52
+ return defaultMenus;
53
+ });
54
+ var resolveProp = function(value) {
55
+ return typeof value === "function" ? value() : value;
56
+ };
57
+ var saveLoadData = computed(function() {
58
+ return resolveProp(saveLoad) || {};
59
+ });
60
+ computed(function() {
61
+ return saveLoadData().mode || "load";
62
+ });
63
+ computed(function() {
64
+ return saveLoadData().slots || [];
65
+ });
66
+ var saveLoadCanSave = computed(function() {
67
+ return saveLoadData().canSave !== false;
68
+ });
69
+ var isMenuDisabled = function(entry) {
70
+ if (!entry) return true;
71
+ if (entry.disabled) return true;
72
+ if (entry.enabled === false) return true;
73
+ if (entry.id === "save" && !saveLoadCanSave()) return true;
74
+ return false;
75
+ };
76
+ var selectedMenu = signal(0);
77
+ var view = signal("menu");
78
+ var saveOverlay = signal(false);
79
+ var selectableIndexes = computed(function() {
80
+ return menuEntries().map(function(entry, index) {
81
+ return isMenuDisabled(entry) ? null : index;
82
+ }).filter(function(value) {
83
+ return value !== null;
84
+ });
85
+ });
86
+ effect(function() {
87
+ var available = selectableIndexes();
88
+ if (!available.length) return;
89
+ var current = selectedMenu();
90
+ if (!available.includes(current)) selectedMenu.set(available[0]);
91
+ });
92
+ var moveMenu = function(delta) {
93
+ var available = selectableIndexes();
94
+ if (!available.length) return;
95
+ var current = selectedMenu();
96
+ var nextIndex = (Math.max(0, available.indexOf(current)) + delta + available.length) % available.length;
97
+ selectedMenu.set(available[nextIndex]);
98
+ };
99
+ function selectMenu(index) {
100
+ return function() {
101
+ selectedMenu.set(index);
102
+ openMenu();
103
+ };
104
+ }
105
+ var openMenu = function() {
106
+ var entry = menuEntries()[selectedMenu()];
107
+ if (!entry || isMenuDisabled(entry)) return;
108
+ if (entry.id === "save") {
109
+ saveOverlay.set(true);
110
+ return;
111
+ }
112
+ if (entry.id === "exit") {
113
+ view.set("exit");
114
+ return;
115
+ }
116
+ view.set(entry.id);
117
+ };
118
+ var goBack = function() {
119
+ delay(function() {
120
+ view.set("menu");
121
+ });
122
+ };
123
+ var closeSaveOverlay = function() {
124
+ delay(function() {
125
+ saveOverlay.set(false);
126
+ view.set("menu");
127
+ });
128
+ };
129
+ var confirmExit = function() {
130
+ if (onInteraction) onInteraction("exit");
131
+ };
132
+ var hp = getEntityProp(currentPlayer, "hp");
133
+ var hpMax = getEntityProp(currentPlayer, "params.maxHp");
134
+ var sp = getEntityProp(currentPlayer, "sp");
135
+ var spMax = getEntityProp(currentPlayer, "params.maxSp");
136
+ var level = getEntityProp(currentPlayer, "level");
137
+ var exp = getEntityProp(currentPlayer, "exp");
138
+ var gold = getEntityProp(currentPlayer, "gold");
139
+ var expForNextlevel = computed(function() {
140
+ return data().expForNextlevel || 0;
141
+ });
142
+ var hpPercent = computed(function() {
143
+ var max = hpMax() || 1;
144
+ return "".concat(Math.max(0, Math.min(100, hp() / max * 100)), "%");
145
+ });
146
+ var spPercent = computed(function() {
147
+ var max = spMax() || 1;
148
+ return "".concat(Math.max(0, Math.min(100, sp() / max * 100)), "%");
149
+ });
150
+ var expPercent = computed(function() {
151
+ var max = expForNextlevel() || 1;
152
+ return "".concat(Math.max(0, Math.min(100, exp() / max * 100)), "%");
153
+ });
154
+ var paramsList = computed(function() {
155
+ return [
156
+ {
157
+ label: "ATK",
158
+ value: data().playerStats.atk
159
+ },
160
+ {
161
+ label: "PDEF",
162
+ value: data().playerStats.pdef
163
+ },
164
+ {
165
+ label: "SDEF",
166
+ value: data().playerStats.sdef
167
+ },
168
+ {
169
+ label: "STR",
170
+ value: data().playerStats.str
171
+ },
172
+ {
173
+ label: "DEX",
174
+ value: data().playerStats.dex
175
+ },
176
+ {
177
+ label: "INT",
178
+ value: data().playerStats.int
179
+ },
180
+ {
181
+ label: "AGI",
182
+ value: data().playerStats.agi
183
+ }
184
+ ];
185
+ });
186
+ var menuControls = signal({
187
+ up: {
188
+ repeat: true,
189
+ bind: keyboardControls.up,
190
+ throttle: 150,
191
+ keyDown: function() {
192
+ if (saveOverlay()) return;
193
+ if (view() !== "menu") return;
194
+ moveMenu(-1);
195
+ }
196
+ },
197
+ down: {
198
+ repeat: true,
199
+ bind: keyboardControls.down,
200
+ throttle: 150,
201
+ keyDown: function() {
202
+ if (saveOverlay()) return;
203
+ if (view() !== "menu") return;
204
+ moveMenu(1);
205
+ }
206
+ },
207
+ action: {
208
+ bind: keyboardControls.action,
209
+ keyDown: function() {
210
+ if (saveOverlay()) return;
211
+ if (view() !== "menu") return;
212
+ openMenu();
213
+ }
214
+ },
215
+ escape: {
216
+ bind: keyboardControls.escape,
217
+ keyDown: function() {
218
+ if (saveOverlay()) return;
219
+ if (view() !== "menu") {
220
+ goBack();
221
+ return;
222
+ }
223
+ onFinish();
224
+ }
225
+ },
226
+ gamepad: { enabled: true }
227
+ });
228
+ mount(function(element) {
229
+ engine.gamePause.set(true);
230
+ return function() {
231
+ delay(function() {
232
+ engine.stopProcessingInput = false;
233
+ engine.gamePause.set(false);
234
+ });
235
+ };
236
+ });
237
+ return h(DOMContainer, {
238
+ width: "100%",
239
+ height: "100%",
240
+ controls: menuControls
241
+ }, h(DOMElement, {
242
+ element: "div",
243
+ attrs: { class: "rpg-ui-main-menu rpg-anim-fade-in" }
244
+ }, [h(DOMElement, {
245
+ element: "div",
246
+ attrs: { class: "rpg-ui-main-menu-layout" }
247
+ }, [h(DOMElement, {
248
+ element: "div",
249
+ attrs: { class: "rpg-ui-main-menu-left rpg-ui-menu rpg-ui-panel" }
250
+ }, [h(DOMElement, {
251
+ element: "div",
252
+ attrs: { class: "rpg-ui-menu-header" },
253
+ textContent: "Menu"
254
+ }), h(DOMElement, {
255
+ element: "div",
256
+ attrs: { class: "rpg-ui-main-menu-list" }
257
+ }, loop(menuEntries(), (entry, index) => h(DOMElement, {
258
+ element: "div",
259
+ attrs: {
260
+ class: ["rpg-ui-menu-item", computed(() => ({ disabled: isMenuDisabled(entry) }))],
261
+ "data-selected": computed(() => selectedMenu() === index ? "true" : "false"),
262
+ tabindex: index,
263
+ click: selectMenu(index)
264
+ },
265
+ textContent: entry.label
266
+ })))]), h(DOMElement, {
267
+ element: "div",
268
+ attrs: { class: "rpg-ui-main-menu-right" }
269
+ }, [
270
+ cond(computed(() => view() === "menu"), () => h(DOMElement, {
271
+ element: "div",
272
+ attrs: { class: "rpg-ui-panel" }
273
+ }, [
274
+ h(DOMElement, {
275
+ element: "div",
276
+ attrs: { class: "rpg-ui-main-menu-section-title" },
277
+ textContent: "Status"
278
+ }),
279
+ h(DOMElement, {
280
+ element: "div",
281
+ attrs: { class: "rpg-ui-main-menu-status-card" }
282
+ }, [
283
+ h(DOMElement, {
284
+ element: "div",
285
+ attrs: { class: "rpg-ui-main-menu-status-block" }
286
+ }, [h(DOMElement, {
287
+ element: "div",
288
+ attrs: { class: "rpg-ui-main-menu-status-label" },
289
+ textContent: "Level"
290
+ }), h(DOMElement, {
291
+ element: "div",
292
+ attrs: { class: "rpg-ui-main-menu-status-value" },
293
+ textContent: computed(() => level())
294
+ })]),
295
+ h(DOMElement, {
296
+ element: "div",
297
+ attrs: { class: "rpg-ui-main-menu-status-block" }
298
+ }, [h(DOMElement, {
299
+ element: "div",
300
+ attrs: { class: "rpg-ui-main-menu-status-label" },
301
+ textContent: "Gold"
302
+ }), h(DOMElement, {
303
+ element: "div",
304
+ attrs: { class: "rpg-ui-main-menu-status-value" },
305
+ textContent: computed(() => gold())
306
+ })]),
307
+ h(DOMElement, {
308
+ element: "div",
309
+ attrs: { class: "rpg-ui-main-menu-status-block" }
310
+ }, [h(DOMElement, {
311
+ element: "div",
312
+ attrs: { class: "rpg-ui-main-menu-status-label" },
313
+ textContent: computed(() => "HP " + hp() + "/" + hpMax())
314
+ }), h(DOMElement, {
315
+ element: "div",
316
+ attrs: { class: "rpg-ui-main-menu-status-bar" }
317
+ }, h(DOMElement, {
318
+ element: "div",
319
+ attrs: {
320
+ class: "rpg-ui-main-menu-status-bar-fill hp",
321
+ style: { width: hpPercent }
322
+ }
323
+ }))]),
324
+ h(DOMElement, {
325
+ element: "div",
326
+ attrs: { class: "rpg-ui-main-menu-status-block" }
327
+ }, [h(DOMElement, {
328
+ element: "div",
329
+ attrs: { class: "rpg-ui-main-menu-status-label" },
330
+ textContent: computed(() => "SP " + sp() + "/" + spMax())
331
+ }), h(DOMElement, {
332
+ element: "div",
333
+ attrs: { class: "rpg-ui-main-menu-status-bar" }
334
+ }, h(DOMElement, {
335
+ element: "div",
336
+ attrs: {
337
+ class: "rpg-ui-main-menu-status-bar-fill sp",
338
+ style: { width: spPercent }
339
+ }
340
+ }))]),
341
+ h(DOMElement, {
342
+ element: "div",
343
+ attrs: {
344
+ class: "rpg-ui-main-menu-status-block",
345
+ style: { gridColumn: "span 2" }
346
+ }
347
+ }, [h(DOMElement, {
348
+ element: "div",
349
+ attrs: { class: "rpg-ui-main-menu-status-label" },
350
+ textContent: computed(() => "EXP " + exp() + "/" + expForNextlevel())
351
+ }), h(DOMElement, {
352
+ element: "div",
353
+ attrs: { class: "rpg-ui-main-menu-status-bar" }
354
+ }, h(DOMElement, {
355
+ element: "div",
356
+ attrs: {
357
+ class: "rpg-ui-main-menu-status-bar-fill exp",
358
+ style: { width: expPercent }
359
+ }
360
+ }))])
361
+ ]),
362
+ h(DOMElement, {
363
+ element: "div",
364
+ attrs: { class: "rpg-ui-main-menu-section-title" },
365
+ textContent: "Parameters"
366
+ }),
367
+ h(DOMElement, {
368
+ element: "div",
369
+ attrs: { class: "rpg-ui-main-menu-params" }
370
+ }, loop(paramsList, (param, index) => h(DOMElement, {
371
+ element: "div",
372
+ attrs: { class: "rpg-ui-main-menu-param" }
373
+ }, [h(DOMElement, {
374
+ element: "span",
375
+ textContent: param.label
376
+ }), h(DOMElement, {
377
+ element: "span",
378
+ textContent: param.value
379
+ })])))
380
+ ])),
381
+ cond(computed(() => view() === "items"), () => h(component$2, {
382
+ data,
383
+ onInteraction,
384
+ onBack: goBack
385
+ })),
386
+ cond(computed(() => view() === "skills"), () => h(component$3, {
387
+ data,
388
+ onBack: goBack
389
+ })),
390
+ cond(computed(() => view() === "equip"), () => h(component$4, {
391
+ data,
392
+ onInteraction,
393
+ onBack: goBack
394
+ })),
395
+ cond(computed(() => view() === "options"), () => h(component$5, { onBack: goBack })),
396
+ cond(computed(() => view() === "exit"), () => h(component$6, {
397
+ onConfirm: confirmExit,
398
+ onBack: goBack
399
+ }))
400
+ ])]), cond(saveOverlay, () => h(DOMElement, {
401
+ element: "div",
402
+ attrs: { class: "rpg-ui-main-menu-overlay" }
403
+ }, [h(DOMElement, {
404
+ element: "div",
405
+ attrs: { class: "rpg-ui-main-menu-overlay-backdrop" }
406
+ }), h(DOMElement, {
407
+ element: "div",
408
+ attrs: { class: "rpg-ui-main-menu-overlay-content" }
409
+ }, h(component$1, {
410
+ data: saveLoadData,
411
+ onFinish: closeSaveOverlay
412
+ }))]))]));
82
413
  }
83
- var openMenu = function () {
84
- var entry = menuEntries()[selectedMenu()];
85
- if (!entry || isMenuDisabled(entry))
86
- return;
87
- if (entry.id === "save") {
88
- saveOverlay.set(true);
89
- return;
90
- }
91
- if (entry.id === "exit") {
92
- view.set("exit");
93
- return;
94
- }
95
- view.set(entry.id);
96
- };
97
- var goBack = function () {
98
- delay(function () {
99
- view.set("menu");
100
- });
101
- };
102
- var closeSaveOverlay = function () {
103
- delay(function () {
104
- saveOverlay.set(false);
105
- view.set("menu");
106
- });
107
- };
108
- var confirmExit = function () {
109
- if (onInteraction)
110
- onInteraction("exit");
111
- };
112
- var hp = getEntityProp(currentPlayer, "hp");
113
- var hpMax = getEntityProp(currentPlayer, "params.maxHp");
114
- var sp = getEntityProp(currentPlayer, "sp");
115
- var spMax = getEntityProp(currentPlayer, "params.maxSp");
116
- var level = getEntityProp(currentPlayer, "level");
117
- var exp = getEntityProp(currentPlayer, "exp");
118
- var gold = getEntityProp(currentPlayer, "gold");
119
- var expForNextlevel = computed(function () { return data().expForNextlevel || 0; });
120
- var hpPercent = computed(function () {
121
- var max = hpMax() || 1;
122
- return "".concat(Math.max(0, Math.min(100, (hp() / max) * 100)), "%");
123
- });
124
- var spPercent = computed(function () {
125
- var max = spMax() || 1;
126
- return "".concat(Math.max(0, Math.min(100, (sp() / max) * 100)), "%");
127
- });
128
- var expPercent = computed(function () {
129
- var max = expForNextlevel() || 1;
130
- return "".concat(Math.max(0, Math.min(100, (exp() / max) * 100)), "%");
131
- });
132
- var paramsList = computed(function () {
133
- return [
134
- { label: "ATK", value: data().playerStats.atk },
135
- { label: "PDEF", value: data().playerStats.pdef },
136
- { label: "SDEF", value: data().playerStats.sdef },
137
- { label: "STR", value: data().playerStats.str },
138
- { label: "DEX", value: data().playerStats.dex },
139
- { label: "INT", value: data().playerStats.int },
140
- { label: "AGI", value: data().playerStats.agi }
141
- ];
142
- });
143
- var menuControls = signal({
144
- up: {
145
- repeat: true,
146
- bind: keyboardControls.up,
147
- throttle: 150,
148
- keyDown: function () {
149
- if (saveOverlay())
150
- return;
151
- if (view() !== "menu")
152
- return;
153
- moveMenu(-1);
154
- }
155
- },
156
- down: {
157
- repeat: true,
158
- bind: keyboardControls.down,
159
- throttle: 150,
160
- keyDown: function () {
161
- if (saveOverlay())
162
- return;
163
- if (view() !== "menu")
164
- return;
165
- moveMenu(1);
166
- }
167
- },
168
- action: {
169
- bind: keyboardControls.action,
170
- keyDown: function () {
171
- if (saveOverlay())
172
- return;
173
- if (view() !== "menu")
174
- return;
175
- openMenu();
176
- }
177
- },
178
- escape: {
179
- bind: keyboardControls.escape,
180
- keyDown: function () {
181
- if (saveOverlay())
182
- return;
183
- if (view() !== "menu") {
184
- goBack();
185
- return;
186
- }
187
- onFinish();
188
- }
189
- },
190
- gamepad: {
191
- enabled: true
192
- }
193
- });
194
- mount(function (element) {
195
- engine.gamePause.set(true);
196
- return function () {
197
- delay(function () {
198
- engine.stopProcessingInput = false;
199
- engine.gamePause.set(false);
200
- });
201
- };
202
- });
203
- let $this = h(DOMContainer, { width: '100%', height: '100%', controls: menuControls }, h(DOMElement, { element: "div", attrs: { class: 'rpg-ui-main-menu rpg-anim-fade-in' } }, [h(DOMElement, { element: "div", attrs: { class: 'rpg-ui-main-menu-layout' } }, [h(DOMElement, { element: "div", attrs: { class: 'rpg-ui-main-menu-left rpg-ui-menu rpg-ui-panel' } }, [h(DOMElement, { element: "div", attrs: { class: 'rpg-ui-menu-header' }, textContent: 'Menu' }), h(DOMElement, { element: "div", attrs: { class: 'rpg-ui-main-menu-list' } }, loop(menuEntries(), (entry, index) => h(DOMElement, { element: "div", attrs: { class: ['rpg-ui-menu-item', computed(() => ({ disabled: isMenuDisabled(entry) }))], 'data-selected': computed(() => selectedMenu() === index ? "true" : "false"), tabindex: index, click: selectMenu(index) }, textContent: entry.label })))]), h(DOMElement, { element: "div", attrs: { class: 'rpg-ui-main-menu-right' } }, [cond(computed(() => view() === "menu"), () => h(DOMElement, { element: "div", attrs: { class: 'rpg-ui-panel' } }, [h(DOMElement, { element: "div", attrs: { class: 'rpg-ui-main-menu-section-title' }, textContent: 'Status' }), h(DOMElement, { element: "div", attrs: { class: 'rpg-ui-main-menu-status-card' } }, [h(DOMElement, { element: "div", attrs: { class: 'rpg-ui-main-menu-status-block' } }, [h(DOMElement, { element: "div", attrs: { class: 'rpg-ui-main-menu-status-label' }, textContent: 'Level' }), h(DOMElement, { element: "div", attrs: { class: 'rpg-ui-main-menu-status-value' }, textContent: computed(() => level()) })]), h(DOMElement, { element: "div", attrs: { class: 'rpg-ui-main-menu-status-block' } }, [h(DOMElement, { element: "div", attrs: { class: 'rpg-ui-main-menu-status-label' }, textContent: 'Gold' }), h(DOMElement, { element: "div", attrs: { class: 'rpg-ui-main-menu-status-value' }, textContent: computed(() => gold()) })]), h(DOMElement, { element: "div", attrs: { class: 'rpg-ui-main-menu-status-block' } }, [h(DOMElement, { element: "div", attrs: { class: 'rpg-ui-main-menu-status-label' }, textContent: computed(() => 'HP ' + hp() + '/' + hpMax()) }), h(DOMElement, { element: "div", attrs: { class: 'rpg-ui-main-menu-status-bar' } }, h(DOMElement, { element: "div", attrs: { class: 'rpg-ui-main-menu-status-bar-fill hp', style: { width: hpPercent } } }))]), h(DOMElement, { element: "div", attrs: { class: 'rpg-ui-main-menu-status-block' } }, [h(DOMElement, { element: "div", attrs: { class: 'rpg-ui-main-menu-status-label' }, textContent: computed(() => 'SP ' + sp() + '/' + spMax()) }), h(DOMElement, { element: "div", attrs: { class: 'rpg-ui-main-menu-status-bar' } }, h(DOMElement, { element: "div", attrs: { class: 'rpg-ui-main-menu-status-bar-fill sp', style: { width: spPercent } } }))]), h(DOMElement, { element: "div", attrs: { class: 'rpg-ui-main-menu-status-block', style: { gridColumn: "span 2" } } }, [h(DOMElement, { element: "div", attrs: { class: 'rpg-ui-main-menu-status-label' }, textContent: computed(() => 'EXP ' + exp() + '/' + expForNextlevel()) }), h(DOMElement, { element: "div", attrs: { class: 'rpg-ui-main-menu-status-bar' } }, h(DOMElement, { element: "div", attrs: { class: 'rpg-ui-main-menu-status-bar-fill exp', style: { width: expPercent } } }))])]), h(DOMElement, { element: "div", attrs: { class: 'rpg-ui-main-menu-section-title' }, textContent: 'Parameters' }), h(DOMElement, { element: "div", attrs: { class: 'rpg-ui-main-menu-params' } }, loop(paramsList, (param, index) => h(DOMElement, { element: "div", attrs: { class: 'rpg-ui-main-menu-param' } }, [h(DOMElement, { element: "span", textContent: param.label }), h(DOMElement, { element: "span", textContent: param.value })])))])), cond(computed(() => view() === "items"), () => h(component$1, { data: data, onInteraction: onInteraction, onBack: goBack })), cond(computed(() => view() === "skills"), () => h(component$2, { data: data, onBack: goBack })), cond(computed(() => view() === "equip"), () => h(component$3, { data: data, onInteraction: onInteraction, onBack: goBack })), cond(computed(() => view() === "options"), () => h(component$4, { onBack: goBack })), cond(computed(() => view() === "exit"), () => h(component$5, { onConfirm: confirmExit, onBack: goBack }))])]), cond(saveOverlay, () => h(DOMElement, { element: "div", attrs: { class: 'rpg-ui-main-menu-overlay' } }, [h(DOMElement, { element: "div", attrs: { class: 'rpg-ui-main-menu-overlay-backdrop' } }), h(DOMElement, { element: "div", attrs: { class: 'rpg-ui-main-menu-overlay-content' } }, h(component$6, { data: saveLoadData, onFinish: closeSaveOverlay }))]))]));
204
- return $this
205
- }
206
-
414
+ //#endregion
207
415
  export { component as default };
208
- //# sourceMappingURL=main-menu.ce.js.map
416
+
417
+ //# sourceMappingURL=main-menu.ce.js.map