@rpgjs/client 5.0.0-alpha.8 → 5.0.0-beta.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.
Files changed (305) hide show
  1. package/dist/Game/AnimationManager.d.ts +8 -0
  2. package/dist/Game/AnimationManager.js +26 -0
  3. package/dist/Game/AnimationManager.js.map +1 -0
  4. package/dist/Game/Event.d.ts +1 -1
  5. package/dist/Game/Event.js +12 -0
  6. package/dist/Game/Event.js.map +1 -0
  7. package/dist/Game/Map.d.ts +23 -2
  8. package/dist/Game/Map.js +80 -0
  9. package/dist/Game/Map.js.map +1 -0
  10. package/dist/Game/Object.d.ts +157 -0
  11. package/dist/Game/Object.js +211 -0
  12. package/dist/Game/Object.js.map +1 -0
  13. package/dist/Game/Player.d.ts +1 -1
  14. package/dist/Game/Player.js +12 -0
  15. package/dist/Game/Player.js.map +1 -0
  16. package/dist/Gui/Gui.d.ts +177 -5
  17. package/dist/Gui/Gui.js +445 -0
  18. package/dist/Gui/Gui.js.map +1 -0
  19. package/dist/Gui/NotificationManager.d.ts +23 -0
  20. package/dist/Gui/NotificationManager.js +49 -0
  21. package/dist/Gui/NotificationManager.js.map +1 -0
  22. package/dist/Resource.d.ts +97 -0
  23. package/dist/Resource.js +133 -0
  24. package/dist/Resource.js.map +1 -0
  25. package/dist/RpgClient.d.ts +290 -58
  26. package/dist/RpgClientEngine.d.ts +649 -9
  27. package/dist/RpgClientEngine.js +1334 -0
  28. package/dist/RpgClientEngine.js.map +1 -0
  29. package/dist/Sound.d.ts +199 -0
  30. package/dist/Sound.js +167 -0
  31. package/dist/Sound.js.map +1 -0
  32. package/dist/_virtual/_@oxc-project_runtime@0.122.0/helpers/decorate.js +9 -0
  33. package/dist/_virtual/_@oxc-project_runtime@0.122.0/helpers/decorateMetadata.js +6 -0
  34. package/dist/components/animations/animation.ce.js +24 -0
  35. package/dist/components/animations/animation.ce.js.map +1 -0
  36. package/dist/components/animations/hit.ce.js +70 -0
  37. package/dist/components/animations/hit.ce.js.map +1 -0
  38. package/dist/components/animations/index.d.ts +4 -0
  39. package/dist/components/animations/index.js +11 -0
  40. package/dist/components/animations/index.js.map +1 -0
  41. package/dist/components/character.ce.js +392 -0
  42. package/dist/components/character.ce.js.map +1 -0
  43. package/dist/components/dynamics/parse-value.d.ts +1 -0
  44. package/dist/components/dynamics/parse-value.js +44 -0
  45. package/dist/components/dynamics/parse-value.js.map +1 -0
  46. package/dist/components/dynamics/text.ce.js +73 -0
  47. package/dist/components/dynamics/text.ce.js.map +1 -0
  48. package/dist/components/gui/box.ce.js +28 -0
  49. package/dist/components/gui/box.ce.js.map +1 -0
  50. package/dist/components/gui/dialogbox/index.ce.js +205 -0
  51. package/dist/components/gui/dialogbox/index.ce.js.map +1 -0
  52. package/dist/components/gui/gameover.ce.js +193 -0
  53. package/dist/components/gui/gameover.ce.js.map +1 -0
  54. package/dist/components/gui/hud/hud.ce.js +92 -0
  55. package/dist/components/gui/hud/hud.ce.js.map +1 -0
  56. package/dist/components/gui/index.d.ts +15 -3
  57. package/dist/components/gui/index.js +14 -0
  58. package/dist/components/gui/menu/equip-menu.ce.js +481 -0
  59. package/dist/components/gui/menu/equip-menu.ce.js.map +1 -0
  60. package/dist/components/gui/menu/exit-menu.ce.js +54 -0
  61. package/dist/components/gui/menu/exit-menu.ce.js.map +1 -0
  62. package/dist/components/gui/menu/items-menu.ce.js +344 -0
  63. package/dist/components/gui/menu/items-menu.ce.js.map +1 -0
  64. package/dist/components/gui/menu/main-menu.ce.js +417 -0
  65. package/dist/components/gui/menu/main-menu.ce.js.map +1 -0
  66. package/dist/components/gui/menu/options-menu.ce.js +48 -0
  67. package/dist/components/gui/menu/options-menu.ce.js.map +1 -0
  68. package/dist/components/gui/menu/skills-menu.ce.js +107 -0
  69. package/dist/components/gui/menu/skills-menu.ce.js.map +1 -0
  70. package/dist/components/gui/mobile/index.d.ts +8 -0
  71. package/dist/components/gui/mobile/index.js +21 -0
  72. package/dist/components/gui/mobile/index.js.map +1 -0
  73. package/dist/components/gui/mobile/mobile.ce.js +78 -0
  74. package/dist/components/gui/mobile/mobile.ce.js.map +1 -0
  75. package/dist/components/gui/notification/notification.ce.js +64 -0
  76. package/dist/components/gui/notification/notification.ce.js.map +1 -0
  77. package/dist/components/gui/save-load.ce.js +389 -0
  78. package/dist/components/gui/save-load.ce.js.map +1 -0
  79. package/dist/components/gui/shop/shop.ce.js +652 -0
  80. package/dist/components/gui/shop/shop.ce.js.map +1 -0
  81. package/dist/components/gui/title-screen.ce.js +190 -0
  82. package/dist/components/gui/title-screen.ce.js.map +1 -0
  83. package/dist/components/index.d.ts +1 -0
  84. package/dist/components/index.js +4 -0
  85. package/dist/components/prebuilt/hp-bar.ce.js +116 -0
  86. package/dist/components/prebuilt/hp-bar.ce.js.map +1 -0
  87. package/dist/components/prebuilt/index.d.ts +19 -0
  88. package/dist/components/prebuilt/index.js +2 -0
  89. package/dist/components/prebuilt/light-halo.ce.js +94 -0
  90. package/dist/components/prebuilt/light-halo.ce.js.map +1 -0
  91. package/dist/components/scenes/canvas.ce.js +60 -0
  92. package/dist/components/scenes/canvas.ce.js.map +1 -0
  93. package/dist/components/scenes/draw-map.ce.js +89 -0
  94. package/dist/components/scenes/draw-map.ce.js.map +1 -0
  95. package/dist/components/scenes/event-layer.ce.js +28 -0
  96. package/dist/components/scenes/event-layer.ce.js.map +1 -0
  97. package/dist/core/inject.js +18 -0
  98. package/dist/core/inject.js.map +1 -0
  99. package/dist/core/setup.js +16 -0
  100. package/dist/core/setup.js.map +1 -0
  101. package/dist/index.d.ts +15 -1
  102. package/dist/index.js +44 -14
  103. package/dist/module.d.ts +43 -4
  104. package/dist/module.js +176 -0
  105. package/dist/module.js.map +1 -0
  106. package/dist/node_modules/.pnpm/@signe_di@2.9.0/node_modules/@signe/di/dist/index.js +277 -0
  107. package/dist/node_modules/.pnpm/@signe_di@2.9.0/node_modules/@signe/di/dist/index.js.map +1 -0
  108. package/dist/node_modules/.pnpm/@signe_reactive@2.8.3/node_modules/@signe/reactive/dist/index.js +457 -0
  109. package/dist/node_modules/.pnpm/@signe_reactive@2.8.3/node_modules/@signe/reactive/dist/index.js.map +1 -0
  110. package/dist/node_modules/.pnpm/@signe_reactive@2.9.0/node_modules/@signe/reactive/dist/index.js +463 -0
  111. package/dist/node_modules/.pnpm/@signe_reactive@2.9.0/node_modules/@signe/reactive/dist/index.js.map +1 -0
  112. package/dist/node_modules/.pnpm/@signe_room@2.9.0/node_modules/@signe/room/dist/index.js +2191 -0
  113. package/dist/node_modules/.pnpm/@signe_room@2.9.0/node_modules/@signe/room/dist/index.js.map +1 -0
  114. package/dist/node_modules/.pnpm/@signe_sync@2.9.0/node_modules/@signe/sync/dist/chunk-7QVYU63E.js +10 -0
  115. package/dist/node_modules/.pnpm/@signe_sync@2.9.0/node_modules/@signe/sync/dist/chunk-7QVYU63E.js.map +1 -0
  116. package/dist/node_modules/.pnpm/@signe_sync@2.9.0/node_modules/@signe/sync/dist/client/index.js +91 -0
  117. package/dist/node_modules/.pnpm/@signe_sync@2.9.0/node_modules/@signe/sync/dist/client/index.js.map +1 -0
  118. package/dist/node_modules/.pnpm/@signe_sync@2.9.0/node_modules/@signe/sync/dist/index.js +325 -0
  119. package/dist/node_modules/.pnpm/@signe_sync@2.9.0/node_modules/@signe/sync/dist/index.js.map +1 -0
  120. package/dist/node_modules/.pnpm/dset@3.1.4/node_modules/dset/dist/index.js +14 -0
  121. package/dist/node_modules/.pnpm/dset@3.1.4/node_modules/dset/dist/index.js.map +1 -0
  122. package/dist/node_modules/.pnpm/partysocket@1.1.3/node_modules/partysocket/dist/chunk-HAC622V3.js +115 -0
  123. package/dist/node_modules/.pnpm/partysocket@1.1.3/node_modules/partysocket/dist/chunk-HAC622V3.js.map +1 -0
  124. package/dist/node_modules/.pnpm/partysocket@1.1.3/node_modules/partysocket/dist/chunk-S74YV6PU.js +401 -0
  125. package/dist/node_modules/.pnpm/partysocket@1.1.3/node_modules/partysocket/dist/chunk-S74YV6PU.js.map +1 -0
  126. package/dist/node_modules/.pnpm/partysocket@1.1.3/node_modules/partysocket/dist/index.js +2 -0
  127. package/dist/node_modules/.pnpm/zod@3.24.2/node_modules/zod/lib/index.js +3756 -0
  128. package/dist/node_modules/.pnpm/zod@3.24.2/node_modules/zod/lib/index.js.map +1 -0
  129. package/dist/presets/animation.d.ts +31 -0
  130. package/dist/presets/animation.js +39 -0
  131. package/dist/presets/animation.js.map +1 -0
  132. package/dist/presets/faceset.d.ts +30 -0
  133. package/dist/presets/faceset.js +51 -0
  134. package/dist/presets/faceset.js.map +1 -0
  135. package/dist/presets/icon.d.ts +20 -0
  136. package/dist/presets/icon.js +15 -0
  137. package/dist/presets/icon.js.map +1 -0
  138. package/dist/presets/index.d.ts +123 -0
  139. package/dist/presets/index.js +17 -0
  140. package/dist/presets/index.js.map +1 -0
  141. package/dist/presets/lpc.d.ts +89 -0
  142. package/dist/presets/lpc.js +98 -0
  143. package/dist/presets/lpc.js.map +1 -0
  144. package/dist/presets/rmspritesheet.js +42 -0
  145. package/dist/presets/rmspritesheet.js.map +1 -0
  146. package/dist/services/AbstractSocket.d.ts +9 -5
  147. package/dist/services/AbstractSocket.js +11 -0
  148. package/dist/services/AbstractSocket.js.map +1 -0
  149. package/dist/services/keyboardControls.d.ts +15 -0
  150. package/dist/services/keyboardControls.js +23 -0
  151. package/dist/services/keyboardControls.js.map +1 -0
  152. package/dist/services/loadMap.js +123 -0
  153. package/dist/services/loadMap.js.map +1 -0
  154. package/dist/services/mmorpg.d.ts +21 -9
  155. package/dist/services/mmorpg.js +131 -0
  156. package/dist/services/mmorpg.js.map +1 -0
  157. package/dist/services/save.d.ts +19 -0
  158. package/dist/services/save.js +77 -0
  159. package/dist/services/save.js.map +1 -0
  160. package/dist/services/standalone.d.ts +67 -7
  161. package/dist/services/standalone.js +168 -0
  162. package/dist/services/standalone.js.map +1 -0
  163. package/dist/utils/getEntityProp.d.ts +39 -0
  164. package/dist/utils/getEntityProp.js +52 -0
  165. package/dist/utils/getEntityProp.js.map +1 -0
  166. package/package.json +13 -9
  167. package/src/Game/{EffectManager.ts → AnimationManager.ts} +3 -2
  168. package/src/Game/Event.ts +1 -1
  169. package/src/Game/Map.ts +95 -3
  170. package/src/Game/Object.ts +330 -14
  171. package/src/Game/Player.ts +1 -1
  172. package/src/Gui/Gui.ts +506 -18
  173. package/src/Gui/NotificationManager.ts +69 -0
  174. package/src/Resource.ts +150 -0
  175. package/src/RpgClient.ts +300 -58
  176. package/src/RpgClientEngine.ts +1707 -48
  177. package/src/Sound.ts +253 -0
  178. package/src/components/{effects → animations}/animation.ce +3 -6
  179. package/src/components/{effects → animations}/index.ts +1 -1
  180. package/src/components/character.ce +406 -40
  181. package/src/components/dynamics/parse-value.ts +80 -0
  182. package/src/components/dynamics/text.ce +183 -0
  183. package/src/components/gui/box.ce +17 -0
  184. package/src/components/gui/dialogbox/index.ce +204 -187
  185. package/src/components/gui/gameover.ce +158 -0
  186. package/src/components/gui/hud/hud.ce +61 -0
  187. package/src/components/gui/index.ts +30 -4
  188. package/src/components/gui/menu/equip-menu.ce +410 -0
  189. package/src/components/gui/menu/exit-menu.ce +41 -0
  190. package/src/components/gui/menu/items-menu.ce +317 -0
  191. package/src/components/gui/menu/main-menu.ce +294 -0
  192. package/src/components/gui/menu/options-menu.ce +35 -0
  193. package/src/components/gui/menu/skills-menu.ce +83 -0
  194. package/src/components/gui/mobile/index.ts +24 -0
  195. package/src/components/gui/mobile/mobile.ce +80 -0
  196. package/src/components/gui/notification/notification.ce +51 -0
  197. package/src/components/gui/save-load.ce +208 -0
  198. package/src/components/gui/shop/shop.ce +493 -0
  199. package/src/components/gui/title-screen.ce +163 -0
  200. package/src/components/index.ts +3 -0
  201. package/src/components/prebuilt/hp-bar.ce +255 -0
  202. package/src/components/prebuilt/index.ts +24 -0
  203. package/src/components/prebuilt/light-halo.ce +148 -0
  204. package/src/components/scenes/canvas.ce +20 -15
  205. package/src/components/scenes/draw-map.ce +60 -13
  206. package/src/components/scenes/event-layer.ce +9 -2
  207. package/src/components/scenes/transition.ce +60 -0
  208. package/src/index.ts +16 -2
  209. package/src/module.ts +145 -9
  210. package/src/presets/animation.ts +46 -0
  211. package/src/presets/faceset.ts +60 -0
  212. package/src/presets/icon.ts +17 -0
  213. package/src/presets/index.ts +9 -1
  214. package/src/presets/lpc.ts +108 -0
  215. package/src/services/AbstractSocket.ts +10 -2
  216. package/src/services/keyboardControls.ts +20 -0
  217. package/src/services/loadMap.ts +1 -1
  218. package/src/services/mmorpg.ts +100 -12
  219. package/src/services/save.ts +103 -0
  220. package/src/services/standalone.ts +110 -18
  221. package/src/utils/getEntityProp.ts +87 -0
  222. package/tsconfig.json +1 -1
  223. package/vite.config.ts +4 -2
  224. package/dist/Game/EffectManager.d.ts +0 -5
  225. package/dist/components/effects/index.d.ts +0 -4
  226. package/dist/index.js.map +0 -1
  227. package/dist/index10.js +0 -8
  228. package/dist/index10.js.map +0 -1
  229. package/dist/index11.js +0 -10
  230. package/dist/index11.js.map +0 -1
  231. package/dist/index12.js +0 -8
  232. package/dist/index12.js.map +0 -1
  233. package/dist/index13.js +0 -17
  234. package/dist/index13.js.map +0 -1
  235. package/dist/index14.js +0 -91
  236. package/dist/index14.js.map +0 -1
  237. package/dist/index15.js +0 -50
  238. package/dist/index15.js.map +0 -1
  239. package/dist/index16.js +0 -191
  240. package/dist/index16.js.map +0 -1
  241. package/dist/index17.js +0 -9
  242. package/dist/index17.js.map +0 -1
  243. package/dist/index18.js +0 -387
  244. package/dist/index18.js.map +0 -1
  245. package/dist/index19.js +0 -31
  246. package/dist/index19.js.map +0 -1
  247. package/dist/index2.js +0 -112
  248. package/dist/index2.js.map +0 -1
  249. package/dist/index20.js +0 -24
  250. package/dist/index20.js.map +0 -1
  251. package/dist/index21.js +0 -2421
  252. package/dist/index21.js.map +0 -1
  253. package/dist/index22.js +0 -114
  254. package/dist/index22.js.map +0 -1
  255. package/dist/index23.js +0 -109
  256. package/dist/index23.js.map +0 -1
  257. package/dist/index24.js +0 -71
  258. package/dist/index24.js.map +0 -1
  259. package/dist/index25.js +0 -21
  260. package/dist/index25.js.map +0 -1
  261. package/dist/index26.js +0 -41
  262. package/dist/index26.js.map +0 -1
  263. package/dist/index27.js +0 -5
  264. package/dist/index27.js.map +0 -1
  265. package/dist/index28.js +0 -322
  266. package/dist/index28.js.map +0 -1
  267. package/dist/index29.js +0 -27
  268. package/dist/index29.js.map +0 -1
  269. package/dist/index3.js +0 -87
  270. package/dist/index3.js.map +0 -1
  271. package/dist/index30.js +0 -11
  272. package/dist/index30.js.map +0 -1
  273. package/dist/index31.js +0 -11
  274. package/dist/index31.js.map +0 -1
  275. package/dist/index32.js +0 -12
  276. package/dist/index32.js.map +0 -1
  277. package/dist/index33.js +0 -4403
  278. package/dist/index33.js.map +0 -1
  279. package/dist/index34.js +0 -316
  280. package/dist/index34.js.map +0 -1
  281. package/dist/index35.js +0 -174
  282. package/dist/index35.js.map +0 -1
  283. package/dist/index36.js +0 -501
  284. package/dist/index36.js.map +0 -1
  285. package/dist/index37.js +0 -61
  286. package/dist/index37.js.map +0 -1
  287. package/dist/index38.js +0 -20
  288. package/dist/index38.js.map +0 -1
  289. package/dist/index39.js +0 -20
  290. package/dist/index39.js.map +0 -1
  291. package/dist/index4.js +0 -67
  292. package/dist/index4.js.map +0 -1
  293. package/dist/index5.js +0 -16
  294. package/dist/index5.js.map +0 -1
  295. package/dist/index6.js +0 -17
  296. package/dist/index6.js.map +0 -1
  297. package/dist/index7.js +0 -39
  298. package/dist/index7.js.map +0 -1
  299. package/dist/index8.js +0 -90
  300. package/dist/index8.js.map +0 -1
  301. package/dist/index9.js +0 -76
  302. package/dist/index9.js.map +0 -1
  303. package/src/components/gui/dialogbox/itemMenu.ce +0 -23
  304. package/src/components/gui/dialogbox/selection.ce +0 -67
  305. /package/src/components/{effects → animations}/hit.ce +0 -0
@@ -0,0 +1,417 @@
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
+ 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, _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
+ }))]))]));
413
+ }
414
+ //#endregion
415
+ export { component as default };
416
+
417
+ //# sourceMappingURL=main-menu.ce.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"main-menu.ce.js","names":[],"sources":["../../../../src/components/gui/menu/main-menu.ce"],"sourcesContent":["<DOMContainer width=\"100%\" height=\"100%\" controls={menuControls}>\n <div class=\"rpg-ui-main-menu rpg-anim-fade-in\">\n <div class=\"rpg-ui-main-menu-layout\">\n <div class=\"rpg-ui-main-menu-left rpg-ui-menu rpg-ui-panel\">\n <div class=\"rpg-ui-menu-header\">Menu</div>\n <div class=\"rpg-ui-main-menu-list\">\n @for ((entry,index) of menuEntries()) {\n <div\n class=\"rpg-ui-menu-item\"\n class={{disabled: isMenuDisabled(entry)}}\n data-selected={selectedMenu() === index ? \"true\" : \"false\"}\n tabindex={index}\n click={selectMenu(index)}\n >{entry.label}</div>\n }\n </div>\n </div>\n <div class=\"rpg-ui-main-menu-right\">\n @if (view() === \"menu\") {\n <div class=\"rpg-ui-panel\">\n <div class=\"rpg-ui-main-menu-section-title\">Status</div>\n <div class=\"rpg-ui-main-menu-status-card\">\n <div class=\"rpg-ui-main-menu-status-block\">\n <div class=\"rpg-ui-main-menu-status-label\">Level</div>\n <div class=\"rpg-ui-main-menu-status-value\">{level()}</div>\n </div>\n <div class=\"rpg-ui-main-menu-status-block\">\n <div class=\"rpg-ui-main-menu-status-label\">Gold</div>\n <div class=\"rpg-ui-main-menu-status-value\">{gold()}</div>\n </div>\n <div class=\"rpg-ui-main-menu-status-block\">\n <div class=\"rpg-ui-main-menu-status-label\">HP {hp()}/{hpMax()}</div>\n <div class=\"rpg-ui-main-menu-status-bar\">\n <div class=\"rpg-ui-main-menu-status-bar-fill hp\" style={{width: hpPercent}}></div>\n </div>\n </div>\n <div class=\"rpg-ui-main-menu-status-block\">\n <div class=\"rpg-ui-main-menu-status-label\">SP {sp()}/{spMax()}</div>\n <div class=\"rpg-ui-main-menu-status-bar\">\n <div class=\"rpg-ui-main-menu-status-bar-fill sp\" style={{width: spPercent}}></div>\n </div>\n </div>\n <div class=\"rpg-ui-main-menu-status-block\" style={{gridColumn: \"span 2\"}}>\n <div class=\"rpg-ui-main-menu-status-label\">EXP {exp()}/{expForNextlevel()}</div>\n <div class=\"rpg-ui-main-menu-status-bar\">\n <div class=\"rpg-ui-main-menu-status-bar-fill exp\" style={{width: expPercent}}></div>\n </div>\n </div>\n </div>\n <div class=\"rpg-ui-main-menu-section-title\">Parameters</div>\n <div class=\"rpg-ui-main-menu-params\">\n @for ((param,index) of paramsList) {\n <div class=\"rpg-ui-main-menu-param\">\n <span>{param.label}</span>\n <span>{param.value}</span>\n </div>\n }\n </div>\n </div>\n }\n @if (view() === \"items\") {\n <ItemsMenu data={data} onInteraction={onInteraction} onBack={goBack} />\n }\n @if (view() === \"skills\") {\n <SkillsMenu data={data} onBack={goBack} />\n }\n @if (view() === \"equip\") {\n <EquipMenu data={data} onInteraction={onInteraction} onBack={goBack} />\n }\n @if (view() === \"options\") {\n <OptionsMenu onBack={goBack} />\n }\n @if (view() === \"exit\") {\n <ExitMenu onConfirm={confirmExit} onBack={goBack} />\n }\n </div>\n </div>\n @if (saveOverlay) {\n <div class=\"rpg-ui-main-menu-overlay\">\n <div class=\"rpg-ui-main-menu-overlay-backdrop\"></div>\n <div class=\"rpg-ui-main-menu-overlay-content\">\n <SaveLoadComponent\n data={saveLoadData}\n onFinish={closeSaveOverlay}\n />\n </div>\n </div>\n }\n </div>\n</DOMContainer>\n\n<script>\n import { signal, computed, effect, mount } from \"canvasengine\";\n import { inject } from \"../../../core/inject\";\n import { RpgClientEngine } from \"../../../RpgClientEngine\";\n import SaveLoadComponent from \"../save-load.ce\";\n import ItemsMenu from \"./items-menu.ce\";\n import SkillsMenu from \"./skills-menu.ce\";\n import EquipMenu from \"./equip-menu.ce\";\n import OptionsMenu from \"./options-menu.ce\";\n import ExitMenu from \"./exit-menu.ce\";\n import { getEntityProp } from \"../../../utils/getEntityProp\";\n import { delay } from \"@rpgjs/common\";\n\n const engine = inject(RpgClientEngine);\n const currentPlayer = engine.scene.currentPlayer;\n const keyboardControls = engine.globalConfig.keyboardControls;\n\n const { data, onFinish, onInteraction } = defineProps();\n const { menus, items, skills, equips, saveLoad } = data();\n\n const defaultMenus = [\n { id: \"items\", label: \"Items\" },\n { id: \"skills\", label: \"Skills\" },\n { id: \"equip\", label: \"Equip\" },\n { id: \"options\", label: \"Options\" },\n { id: \"save\", label: \"Save\" },\n { id: \"exit\", label: \"Exit\" }\n ];\n\n const menuEntries = computed(() => {\n if (menus && Array.isArray(menus) && menus.length) return menus;\n return defaultMenus;\n });\n\n const resolveProp = (value) => typeof value === \"function\" ? value() : value;\n const saveLoadData = computed(() => resolveProp(saveLoad) || {});\n const saveLoadMode = computed(() => saveLoadData().mode || \"load\");\n const saveLoadSlots = computed(() => saveLoadData().slots || []);\n const saveLoadCanSave = computed(() => saveLoadData().canSave !== false);\n\n const isMenuDisabled = (entry) => {\n if (!entry) return true;\n if (entry.disabled) return true;\n if (entry.enabled === false) return true;\n if (entry.id === \"save\" && !saveLoadCanSave()) return true;\n return false;\n };\n\n const selectedMenu = signal(0);\n const view = signal(\"menu\");\n const saveOverlay = signal(false);\n\n const selectableIndexes = computed(() => {\n const entries = menuEntries();\n return entries\n .map((entry, index) => (isMenuDisabled(entry) ? null : index))\n .filter((value) => value !== null);\n });\n\n effect(() => {\n const available = selectableIndexes();\n if (!available.length) return;\n const current = selectedMenu();\n if (!available.includes(current)) {\n selectedMenu.set(available[0]);\n }\n });\n\n const moveMenu = (delta) => {\n const available = selectableIndexes();\n if (!available.length) return;\n const current = selectedMenu();\n const currentIndex = Math.max(0, available.indexOf(current));\n const nextIndex = (currentIndex + delta + available.length) % available.length;\n selectedMenu.set(available[nextIndex]);\n };\n\n function selectMenu(index) {\n return function() {\n selectedMenu.set(index);\n openMenu();\n }\n }\n\n const openMenu = () => {\n const entry = menuEntries()[selectedMenu()];\n if (!entry || isMenuDisabled(entry)) return;\n if (entry.id === \"save\") {\n saveOverlay.set(true);\n return;\n }\n if (entry.id === \"exit\") {\n view.set(\"exit\");\n return;\n }\n view.set(entry.id);\n };\n\n const goBack = () => {\n delay(() => {\n view.set(\"menu\");\n });\n };\n\n const closeSaveOverlay = () => {\n delay(() => {\n saveOverlay.set(false);\n view.set(\"menu\");\n });\n };\n\n const confirmExit = () => {\n if (onInteraction) onInteraction(\"exit\");\n };\n\n const hp = getEntityProp(currentPlayer, \"hp\");\n const hpMax = getEntityProp(currentPlayer, \"params.maxHp\");\n const sp = getEntityProp(currentPlayer, \"sp\");\n const spMax = getEntityProp(currentPlayer, \"params.maxSp\");\n const level = getEntityProp(currentPlayer, \"level\");\n const exp = getEntityProp(currentPlayer, \"exp\");\n const gold = getEntityProp(currentPlayer, \"gold\");\n const expForNextlevel = computed(() => data().expForNextlevel || 0);\n const hpPercent = computed(() => {\n const max = hpMax() || 1;\n return `${Math.max(0, Math.min(100, (hp() / max) * 100))}%`;\n });\n const spPercent = computed(() => {\n const max = spMax() || 1;\n return `${Math.max(0, Math.min(100, (sp() / max) * 100))}%`;\n });\n const expPercent = computed(() => {\n const max = expForNextlevel() || 1;\n return `${Math.max(0, Math.min(100, (exp() / max) * 100))}%`;\n });\n\n const paramsList = computed(() => {\n return [\n { label: \"ATK\", value: data().playerStats.atk },\n { label: \"PDEF\", value: data().playerStats.pdef },\n { label: \"SDEF\", value: data().playerStats.sdef },\n { label: \"STR\", value: data().playerStats.str },\n { label: \"DEX\", value: data().playerStats.dex },\n { label: \"INT\", value: data().playerStats.int },\n { label: \"AGI\", value: data().playerStats.agi }\n ]\n }\n\n const menuControls = signal({\n up: {\n repeat: true,\n bind: keyboardControls.up,\n throttle: 150,\n keyDown() {\n if (saveOverlay()) return;\n if (view() !== \"menu\") return;\n moveMenu(-1);\n }\n },\n down: {\n repeat: true,\n bind: keyboardControls.down,\n throttle: 150,\n keyDown() {\n if (saveOverlay()) return;\n if (view() !== \"menu\") return;\n moveMenu(1);\n }\n },\n action: {\n bind: keyboardControls.action,\n keyDown() {\n if (saveOverlay()) return;\n if (view() !== \"menu\") return;\n openMenu();\n }\n },\n escape: {\n bind: keyboardControls.escape,\n keyDown() {\n if (saveOverlay()) return;\n if (view() !== \"menu\") {\n goBack();\n return;\n }\n onFinish()\n }\n },\n gamepad: {\n enabled: true\n }\n });\n\n mount((element) => {\n engine.gamePause.set(true);\n return () => {\n delay(() => {\n engine.stopProcessingInput = false;\n engine.gamePause.set(false);\n });\n }\n });\n</script>\n"],"mappings":"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"}
@@ -0,0 +1,48 @@
1
+ import { inject } from "../../../core/inject.js";
2
+ import { RpgClientEngine } from "../../../RpgClientEngine.js";
3
+ import { DOMContainer, DOMElement, h, signal, useDefineProps, useProps } from "canvasengine";
4
+ //#region src/components/gui/menu/options-menu.ce
5
+ function component($$props) {
6
+ useProps($$props);
7
+ const defineProps = useDefineProps($$props);
8
+ var keyboardControls = inject(RpgClientEngine).globalConfig.keyboardControls;
9
+ var onBack = defineProps().onBack;
10
+ return h(DOMContainer, {
11
+ width: "100%",
12
+ height: "100%",
13
+ controls: signal({
14
+ escape: {
15
+ bind: keyboardControls.escape,
16
+ keyDown: function() {
17
+ if (onBack) onBack();
18
+ }
19
+ },
20
+ gamepad: { enabled: true }
21
+ })
22
+ }, h(DOMElement, {
23
+ element: "div",
24
+ attrs: { class: "rpg-ui-menu-panel rpg-ui-panel" }
25
+ }, [h(DOMElement, {
26
+ element: "div",
27
+ attrs: { class: "rpg-ui-menu-panel-header" },
28
+ textContent: "Options"
29
+ }), h(DOMElement, {
30
+ element: "div",
31
+ attrs: { class: "rpg-ui-menu-panel-body" }
32
+ }, h(DOMElement, {
33
+ element: "div",
34
+ attrs: { class: "rpg-ui-menu-panel-details" }
35
+ }, [h(DOMElement, {
36
+ element: "div",
37
+ attrs: { class: "rpg-ui-menu-panel-details-title" },
38
+ textContent: "Options"
39
+ }), h(DOMElement, {
40
+ element: "div",
41
+ attrs: { class: "rpg-ui-menu-panel-details-desc" },
42
+ textContent: "Configure your preferences here.\n "
43
+ })]))]));
44
+ }
45
+ //#endregion
46
+ export { component as default };
47
+
48
+ //# sourceMappingURL=options-menu.ce.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"options-menu.ce.js","names":[],"sources":["../../../../src/components/gui/menu/options-menu.ce"],"sourcesContent":["<DOMContainer width=\"100%\" height=\"100%\" controls={controls}>\n <div class=\"rpg-ui-menu-panel rpg-ui-panel\">\n <div class=\"rpg-ui-menu-panel-header\">Options</div>\n <div class=\"rpg-ui-menu-panel-body\">\n <div class=\"rpg-ui-menu-panel-details\">\n <div class=\"rpg-ui-menu-panel-details-title\">Options</div>\n <div class=\"rpg-ui-menu-panel-details-desc\">\n Configure your preferences here.\n </div>\n </div>\n </div>\n </div>\n</DOMContainer>\n\n<script>\n import { signal } from \"canvasengine\";\n import { inject } from \"../../../core/inject\";\n import { RpgClientEngine } from \"../../../RpgClientEngine\";\n\n const engine = inject(RpgClientEngine);\n const keyboardControls = engine.globalConfig.keyboardControls;\n const { onBack } = defineProps();\n\n const controls = signal({\n escape: {\n bind: keyboardControls.escape,\n keyDown() {\n if (onBack) onBack();\n }\n },\n gamepad: {\n enabled: true\n }\n });\n</script>\n"],"mappings":";;;;AASM,SAAW,UAAA,SAAA;AACJ,UAAA,QAAA;CACP,MAAG,cAAA,eAAA,QAAA;wBACK,OAAA,gBAAA,CAAA,aAAA;CAEd,IAAC,SAAM,aAAA,CAAA;AAcC,QADY,EAAA,cAAgB;EAAA,OAAA;EAAA,QAAA;EAAA,UAZvB,OAAS;GAClB,QAAQ;IACR,MAAS,iBAAkB;;AAErB,SAAM,OACN,SAAA;;;GAGN,SAAM,EACF,SAAQ,MACX;GACJ,CAAC;EACkC,EAAA,EAAA,YAAA;EAAA,SAAA;EAAA,OAAA,EAAA,OAAA,kCAAA;EAAA,EAAA,CAAA,EAAA,YAAA;EAAA,SAAA;EAAA,OAAA,EAAA,OAAA,4BAAA;EAAA,aAAA;EAAA,CAAA,EAAA,EAAA,YAAA;EAAA,SAAA;EAAA,OAAA,EAAA,OAAA,0BAAA;EAAA,EAAA,EAAA,YAAA;EAAA,SAAA;EAAA,OAAA,EAAA,OAAA,6BAAA;EAAA,EAAA,CAAA,EAAA,YAAA;EAAA,SAAA;EAAA,OAAA,EAAA,OAAA,mCAAA;EAAA,aAAA;EAAA,CAAA,EAAA,EAAA,YAAA;EAAA,SAAA;EAAA,OAAA,EAAA,OAAA,kCAAA;EAAA,aAAA;EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA"}
@@ -0,0 +1,107 @@
1
+ import { inject } from "../../../core/inject.js";
2
+ import { RpgClientEngine } from "../../../RpgClientEngine.js";
3
+ import { DOMContainer, DOMElement, Navigation, computed, cond, createTabindexNavigator, h, loop, signal, useDefineProps, useProps } from "canvasengine";
4
+ //#region src/components/gui/menu/skills-menu.ce
5
+ function component($$props) {
6
+ useProps($$props);
7
+ const defineProps = useDefineProps($$props);
8
+ var keyboardControls = inject(RpgClientEngine).globalConfig.keyboardControls;
9
+ var selectedSkill = signal(0);
10
+ var _a = defineProps(), data = _a.data, onBack = _a.onBack;
11
+ var skills = computed(function() {
12
+ return data().skills;
13
+ });
14
+ var nav = createTabindexNavigator(selectedSkill, { count: function() {
15
+ return skills().length;
16
+ } }, "wrap");
17
+ var currentSkill = computed(function() {
18
+ return skills()[selectedSkill()];
19
+ });
20
+ function selectSkill(index) {
21
+ return function() {
22
+ selectedSkill.set(index);
23
+ };
24
+ }
25
+ var controls = signal({
26
+ up: {
27
+ repeat: true,
28
+ bind: keyboardControls.up,
29
+ throttle: 150,
30
+ keyDown: function() {
31
+ nav.next(-1);
32
+ }
33
+ },
34
+ down: {
35
+ repeat: true,
36
+ bind: keyboardControls.down,
37
+ throttle: 150,
38
+ keyDown: function() {
39
+ nav.next(1);
40
+ }
41
+ },
42
+ escape: {
43
+ bind: keyboardControls.escape,
44
+ keyDown: function() {
45
+ if (onBack) onBack();
46
+ }
47
+ },
48
+ gamepad: { enabled: true }
49
+ });
50
+ return h(DOMContainer, {
51
+ width: "100%",
52
+ height: "100%"
53
+ }, h(DOMElement, {
54
+ element: "div",
55
+ attrs: { class: "rpg-ui-menu-panel rpg-ui-panel" }
56
+ }, [h(DOMElement, {
57
+ element: "div",
58
+ attrs: { class: "rpg-ui-menu-panel-header" },
59
+ textContent: "Skills"
60
+ }), h(DOMElement, {
61
+ element: "div",
62
+ attrs: { class: "rpg-ui-menu-panel-body rpg-ui-menu-panel-body-stacked" }
63
+ }, [h(DOMElement, {
64
+ element: "div",
65
+ attrs: { class: "rpg-ui-menu-panel-details rpg-ui-panel" }
66
+ }, cond(currentSkill, () => h(DOMElement, {
67
+ element: "div",
68
+ attrs: { class: "rpg-ui-menu-panel-hero" }
69
+ }, [h(DOMElement, {
70
+ element: "div",
71
+ attrs: { class: "rpg-ui-menu-panel-hero-icon" },
72
+ textContent: "✨"
73
+ }), h(DOMElement, { element: "div" }, [h(DOMElement, {
74
+ element: "div",
75
+ attrs: { class: "rpg-ui-menu-panel-details-title" },
76
+ textContent: computed(() => currentSkill()?.name)
77
+ }), h(DOMElement, {
78
+ element: "div",
79
+ attrs: { class: "rpg-ui-menu-panel-details-desc" },
80
+ textContent: computed(() => currentSkill()?.description || "")
81
+ })])]))), h(DOMElement, {
82
+ element: "div",
83
+ attrs: { class: "rpg-ui-menu-panel-list rpg-ui-menu rpg-ui-menu-panel-list-full" }
84
+ }, h(Navigation, {
85
+ tabindex: selectedSkill,
86
+ controls
87
+ }, loop(skills, (skill, index) => h(DOMElement, {
88
+ element: "div",
89
+ attrs: {
90
+ class: "rpg-ui-menu-item rpg-ui-menu-row",
91
+ "data-selected": computed(() => selectedSkill() === index ? "true" : "false"),
92
+ tabindex: index,
93
+ click: selectSkill(index)
94
+ }
95
+ }, [h(DOMElement, {
96
+ element: "span",
97
+ textContent: skill.name
98
+ }), h(DOMElement, {
99
+ element: "span",
100
+ attrs: { class: "rpg-ui-menu-row-end" },
101
+ textContent: "SP " + skill.spCost
102
+ })]))))])]));
103
+ }
104
+ //#endregion
105
+ export { component as default };
106
+
107
+ //# sourceMappingURL=skills-menu.ce.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"skills-menu.ce.js","names":[],"sources":["../../../../src/components/gui/menu/skills-menu.ce"],"sourcesContent":["<DOMContainer width=\"100%\" height=\"100%\">\n <div class=\"rpg-ui-menu-panel rpg-ui-panel\">\n <div class=\"rpg-ui-menu-panel-header\">Skills</div>\n <div class=\"rpg-ui-menu-panel-body rpg-ui-menu-panel-body-stacked\">\n <div class=\"rpg-ui-menu-panel-details rpg-ui-panel\">\n @if (currentSkill) {\n <div class=\"rpg-ui-menu-panel-hero\">\n <div class=\"rpg-ui-menu-panel-hero-icon\">✨</div>\n <div>\n <div class=\"rpg-ui-menu-panel-details-title\">{currentSkill()?.name}</div>\n <div class=\"rpg-ui-menu-panel-details-desc\">{currentSkill()?.description || \"\"}</div>\n </div>\n </div>\n }\n </div>\n <div class=\"rpg-ui-menu-panel-list rpg-ui-menu rpg-ui-menu-panel-list-full\">\n <Navigation tabindex={selectedSkill} controls={controls}>\n @for ((skill,index) of skills) {\n <div\n class=\"rpg-ui-menu-item rpg-ui-menu-row\"\n data-selected={selectedSkill() === index ? \"true\" : \"false\"}\n tabindex={index}\n click={selectSkill(index)}\n >\n <span>{skill.name}</span>\n <span class=\"rpg-ui-menu-row-end\">SP {skill.spCost ?? 0}</span>\n </div>\n }\n </Navigation>\n </div>\n </div>\n </div>\n</DOMContainer>\n\n<script>\n import { signal, computed, createTabindexNavigator } from \"canvasengine\";\n import { inject } from \"../../../core/inject\";\n import { RpgClientEngine } from \"../../../RpgClientEngine\";\n\n const engine = inject(RpgClientEngine);\n const keyboardControls = engine.globalConfig.keyboardControls;\n\n const selectedSkill = signal(0);\n const { data, onBack } = defineProps();\n const skills = computed(() => data().skills);\n\n const nav = createTabindexNavigator(selectedSkill, { count: () => skills().length }, \"wrap\");\n const currentSkill = computed(() => skills()[selectedSkill()]);\n\n function selectSkill(index) {\n return function() {\n selectedSkill.set(index);\n }\n }\n\n const controls = signal({\n up: {\n repeat: true,\n bind: keyboardControls.up,\n throttle: 150,\n keyDown() {\n nav.next(-1);\n }\n },\n down: {\n repeat: true,\n bind: keyboardControls.down,\n throttle: 150,\n keyDown() {\n nav.next(1);\n }\n },\n escape: {\n bind: keyboardControls.escape,\n keyDown() {\n if (onBack) onBack();\n }\n },\n gamepad: {\n enabled: true\n }\n });\n</script>\n"],"mappings":";;;;AAUM,SAAuB,UAAW,SAAO;AACxB,UAAM,QAAA;CACrB,MAAM,cAAW,eAAA,QAAA;CAEzB,IAAI,mBADY,OAAA,gBAAA,CACC,aAAA;CACjB,IAAI,gBAAa,OAAU,EAAC;CAC5B,IAAI,KAAK,aAAQ,EAAA,OAAW,GAAA,MAAU,SAAA,GAAc;CACpD,IAAI,SAAS,SAAQ,WAAY;AAAA,SAAU,MAAM,CAAC;GAAC;CACnD,IAAI,MAAM,wBAAe,eAAA,EAAA,OAAA,WAAA;AAAA,SAAA,QAAA,CAAA;IAAA,EAAA,OAAA;CACzB,IAAI,eAAe,SAAS,WAAW;AAAG,SAAK,QAAS,CAAE,eAAS;GAAA;CACnE,SAAS,YAAY,OAAO;AACxB,SAAO,WAAY;AACf,iBAAc,IAAI,MAAE;;;CAG5B,IAAI,WAAW,OAAO;EAClB,IAAI;GACA,QAAQ;GACR,MAAM,iBAAc;GACpB,UAAS;GACT,SAAK,WAAA;AACJ,QAAA,KAAA,GAAA;;;EAGR,MAAM;GACH,QAAS;GACT,MAAS,iBAAkB;GAC3B,UAAS;;AAEH,QAAM,KAAG,EAAA;;;EAGf,QAAM;GACN,MAAQ,iBAAiB;GACzB,SAAa,WAAY;eAEb,SAAA;;;EAGZ,SAAS,EACL,SAAO,MACV;EACJ,CAAC;QACE,EAAA,cAAA;EAAA,OAAA;EAAA,QAAA;EAAA,EAAA,EAAA,YAAA;EAAA,SAAA;EAAA,OAAA,EAAA,OAAA,kCAAA;EAAA,EAAA,CAAA,EAAA,YAAA;EAAA,SAAA;EAAA,OAAA,EAAA,OAAA,4BAAA;EAAA,aAAA;EAAA,CAAA,EAAA,EAAA,YAAA;EAAA,SAAA;EAAA,OAAA,EAAA,OAAA,yDAAA;EAAA,EAAA,CAAA,EAAA,YAAA;EAAA,SAAA;EAAA,OAAA,EAAA,OAAA,0CAAA;EAAA,EAAA,KAAA,oBAAA,EAAA,YAAA;EAAA,SAAA;EAAA,OAAA,EAAA,OAAA,0BAAA;EAAA,EAAA,CAAA,EAAA,YAAA;EAAA,SAAA;EAAA,OAAA,EAAA,OAAA,+BAAA;EAAA,aAAA;EAAA,CAAA,EAAA,EAAA,YAAA,EAAA,SAAA,OAAA,EAAA,CAAA,EAAA,YAAA;EAAA,SAAA;EAAA,OAAA,EAAA,OAAA,mCAAA;EAAA,aAAA,eAAA,cAAA,EAAA,KAAA;EAAA,CAAA,EAAA,EAAA,YAAA;EAAA,SAAA;EAAA,OAAA,EAAA,OAAA,kCAAA;EAAA,aAAA,eAAA,cAAA,EAAA,eAAA,GAAA;EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,EAAA,YAAA;EAAA,SAAA;EAAA,OAAA,EAAA,OAAA,kEAAA;EAAA,EAAA,EAAA,YAAA;EAAA,UAAA;EAAA;EAAA,EAAA,KAAA,SAAA,OAAA,UAAA,EAAA,YAAA;EAAA,SAAA;EAAA,OAAA;GAAA,OAAA;GAAA,iBAAA,eAAA,eAAA,KAAA,QAAA,SAAA,QAAA;GAAA,UAAA;GAAA,OAAA,YAAA,MAAA;GAAA;EAAA,EAAA,CAAA,EAAA,YAAA;EAAA,SAAA;EAAA,aAAA,MAAA;EAAA,CAAA,EAAA,EAAA,YAAA;EAAA,SAAA;EAAA,OAAA,EAAA,OAAA,uBAAA;EAAA,aAAA,QAAA,MAAA;EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA"}
@@ -0,0 +1,8 @@
1
+ export declare const withMobile: () => {
2
+ gui: {
3
+ id: string;
4
+ component: any;
5
+ autoDisplay: boolean;
6
+ dependencies: () => (import('canvasengine').WritableSignal<undefined> | import('canvasengine').WritableSignal<true | undefined>)[];
7
+ }[];
8
+ };
@@ -0,0 +1,21 @@
1
+ import { inject } from "../../../core/inject.js";
2
+ import { RpgClientEngine } from "../../../RpgClientEngine.js";
3
+ import component from "./mobile.ce.js";
4
+ import { signal } from "canvasengine";
5
+ //#region src/components/gui/mobile/index.ts
6
+ function isMobile() {
7
+ return /Android|iPhone|iPad|iPod|Windows Phone|webOS|BlackBerry/i.test(navigator.userAgent);
8
+ }
9
+ var withMobile = () => ({ gui: [{
10
+ id: "mobile-gui",
11
+ component,
12
+ autoDisplay: true,
13
+ dependencies: () => {
14
+ const engine = inject(RpgClientEngine);
15
+ return [signal(isMobile() || void 0), engine.controlsReady];
16
+ }
17
+ }] });
18
+ //#endregion
19
+ export { withMobile };
20
+
21
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","names":[],"sources":["../../../../src/components/gui/mobile/index.ts"],"sourcesContent":["import { inject } from \"../../../core/inject\";\nimport { RpgClientEngine } from \"../../../RpgClientEngine\";\nimport MobileGui from \"./mobile.ce\";\nimport { signal } from \"canvasengine\";\n\nfunction isMobile() {\n return /Android|iPhone|iPad|iPod|Windows Phone|webOS|BlackBerry/i.test(navigator.userAgent);\n }\n\nexport const withMobile = () => (\n {\n gui: [\n {\n id: 'mobile-gui',\n component: MobileGui,\n autoDisplay: true,\n dependencies: () => {\n const engine = inject(RpgClientEngine);\n return [signal(isMobile() ||undefined), engine.controlsReady]\n }\n }\n ]\n }\n)"],"mappings":";;;;;AAKA,SAAS,WAAW;AAChB,QAAO,2DAA2D,KAAK,UAAU,UAAU;;AAG/F,IAAa,oBACT,EACI,KAAK,CACD;CACI,IAAI;CACO;CACX,aAAa;CACb,oBAAoB;EAChB,MAAM,SAAS,OAAO,gBAAgB;AACtC,SAAO,CAAC,OAAO,UAAU,IAAG,KAAA,EAAU,EAAE,OAAO,cAAc;;CAEpE,CACJ,EACJ"}