@kbve/laser 0.0.6

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 (56) hide show
  1. package/README.md +11 -0
  2. package/package.json +43 -0
  3. package/src/index.d.ts +17 -0
  4. package/src/index.js +34 -0
  5. package/src/index.js.map +1 -0
  6. package/src/lib/animations/TypewriterComponent.d.ts +8 -0
  7. package/src/lib/animations/TypewriterComponent.js +53 -0
  8. package/src/lib/animations/TypewriterComponent.js.map +1 -0
  9. package/src/lib/eventhandler.d.ts +31 -0
  10. package/src/lib/eventhandler.js +45 -0
  11. package/src/lib/eventhandler.js.map +1 -0
  12. package/src/lib/icon/CollapseIcon.d.ts +4 -0
  13. package/src/lib/icon/CollapseIcon.js +10 -0
  14. package/src/lib/icon/CollapseIcon.js.map +1 -0
  15. package/src/lib/icon/ExpandIcon.d.ts +4 -0
  16. package/src/lib/icon/ExpandIcon.js +10 -0
  17. package/src/lib/icon/ExpandIcon.js.map +1 -0
  18. package/src/lib/laser.d.ts +1 -0
  19. package/src/lib/laser.js +8 -0
  20. package/src/lib/laser.js.map +1 -0
  21. package/src/lib/localdb.d.ts +55 -0
  22. package/src/lib/localdb.js +591 -0
  23. package/src/lib/localdb.js.map +1 -0
  24. package/src/lib/minigame/dice/MinigameDice.d.ts +4 -0
  25. package/src/lib/minigame/dice/MinigameDice.js +85 -0
  26. package/src/lib/minigame/dice/MinigameDice.js.map +1 -0
  27. package/src/lib/phaser/monster/bird.d.ts +7 -0
  28. package/src/lib/phaser/monster/bird.js +44 -0
  29. package/src/lib/phaser/monster/bird.js.map +1 -0
  30. package/src/lib/phaser/npc/chatbubble.d.ts +10 -0
  31. package/src/lib/phaser/npc/chatbubble.js +78 -0
  32. package/src/lib/phaser/npc/chatbubble.js.map +1 -0
  33. package/src/lib/phaser/npc/npcdatabase.d.ts +56 -0
  34. package/src/lib/phaser/npc/npcdatabase.js +497 -0
  35. package/src/lib/phaser/npc/npcdatabase.js.map +1 -0
  36. package/src/lib/phaser/npc/npchandler.d.ts +20 -0
  37. package/src/lib/phaser/npc/npchandler.js +114 -0
  38. package/src/lib/phaser/npc/npchandler.js.map +1 -0
  39. package/src/lib/phaser/npc/tooltipmenu.d.ts +17 -0
  40. package/src/lib/phaser/npc/tooltipmenu.js +68 -0
  41. package/src/lib/phaser/npc/tooltipmenu.js.map +1 -0
  42. package/src/lib/phaser/player/playercontroller.d.ts +24 -0
  43. package/src/lib/phaser/player/playercontroller.js +219 -0
  44. package/src/lib/phaser/player/playercontroller.js.map +1 -0
  45. package/src/lib/quadtree.d.ts +37 -0
  46. package/src/lib/quadtree.js +123 -0
  47. package/src/lib/quadtree.js.map +1 -0
  48. package/src/lib/utils/debug.d.ts +8 -0
  49. package/src/lib/utils/debug.js +46 -0
  50. package/src/lib/utils/debug.js.map +1 -0
  51. package/src/lib/utils/ulid.d.ts +1 -0
  52. package/src/lib/utils/ulid.js +38 -0
  53. package/src/lib/utils/ulid.js.map +1 -0
  54. package/src/types.d.ts +355 -0
  55. package/src/types.js +9 -0
  56. package/src/types.js.map +1 -0
package/README.md ADDED
@@ -0,0 +1,11 @@
1
+ # laser
2
+
3
+ This library was generated with [Nx](https://nx.dev).
4
+
5
+ ## Building
6
+
7
+ Run `nx build laser` to build the library.
8
+
9
+ ## Running unit tests
10
+
11
+ Run `nx test laser` to execute the unit tests via [Vitest](https://vitest.dev/).
package/package.json ADDED
@@ -0,0 +1,43 @@
1
+ {
2
+ "name": "@kbve/laser",
3
+ "version": "0.0.6",
4
+ "description": "A comprehensive game development toolkit for Node.js. Laser is a powerful npm package designed to streamline game development processes, with a focus on efficient game client management. It provides essential tools and utilities to enhance your game creation workflow, including an event handler, quadtree, client management and performance utilities.",
5
+ "keywords": [
6
+ "phaser",
7
+ "gamedev"
8
+ ],
9
+ "homepage": "https://kbve.com/application/javascript/",
10
+ "bugs": {
11
+ "url": "https://github.com/KBVE/kbve/issues"
12
+ },
13
+ "repository": {
14
+ "type": "git",
15
+ "url": "git+https://github.com/KBVE/kbve.git"
16
+ },
17
+ "author": "KBVE <hello@kbve.com>",
18
+ "license": "MIT",
19
+ "dependencies": {
20
+ "tslib": "^2.3.0",
21
+ "nanostores": "^0.9.3",
22
+ "phaser": "^3.80.1",
23
+ "styled-components": "5.3.6",
24
+ "tailwind-merge": "^2.2.1",
25
+ "react": "18.2.0",
26
+ "react-dom": "18.2.0",
27
+ "@nanostores/persistent": "^0.9.1",
28
+ "@nanostores/react": "^0.7.2",
29
+ "three": "^0.161.0",
30
+ "react-spring": "^9.7.3",
31
+ "@react-three/drei": "^9.108.3",
32
+ "@react-three/fiber": "^8.16.2",
33
+ "@react-three/flex": "^1.0.1",
34
+ "dexie": "^4.0.7",
35
+ "dexie-react-hooks": "^1.1.7"
36
+ },
37
+ "type": "commonjs",
38
+ "main": "./src/index.js",
39
+ "typings": "./src/index.d.ts",
40
+ "publishConfig": {
41
+ "access": "public"
42
+ }
43
+ }
package/src/index.d.ts ADDED
@@ -0,0 +1,17 @@
1
+ export * from './types';
2
+ export * from './lib/laser';
3
+ export * from './lib/quadtree';
4
+ export * from './lib/eventhandler';
5
+ export * from './lib/localdb';
6
+ export * from './lib/utils/ulid';
7
+ export * from './lib/utils/debug';
8
+ export { default as CollapseIcon } from './lib/icon/CollapseIcon';
9
+ export { default as ExpandIcon } from './lib/icon/ExpandIcon';
10
+ export { default as MinigameDice } from './lib/minigame/dice/MinigameDice';
11
+ export { default as TypewriterComponent } from './lib/animations/TypewriterComponent';
12
+ export * from './lib/phaser/player/playercontroller';
13
+ export * from './lib/phaser/npc/tooltipmenu';
14
+ export * from './lib/phaser/npc/chatbubble';
15
+ export * from './lib/phaser/npc/npchandler';
16
+ export * from './lib/phaser/npc/npcdatabase';
17
+ export * from './lib/phaser/monster/bird';
package/src/index.js ADDED
@@ -0,0 +1,34 @@
1
+ "use strict";
2
+ // Types
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.TypewriterComponent = exports.MinigameDice = exports.ExpandIcon = exports.CollapseIcon = void 0;
5
+ const tslib_1 = require("tslib");
6
+ tslib_1.__exportStar(require("./types"), exports);
7
+ tslib_1.__exportStar(require("./lib/laser"), exports);
8
+ tslib_1.__exportStar(require("./lib/quadtree"), exports);
9
+ tslib_1.__exportStar(require("./lib/eventhandler"), exports);
10
+ tslib_1.__exportStar(require("./lib/localdb"), exports);
11
+ // Utils
12
+ tslib_1.__exportStar(require("./lib/utils/ulid"), exports); // ULID
13
+ tslib_1.__exportStar(require("./lib/utils/debug"), exports); // Debug
14
+ // Icons
15
+ var CollapseIcon_1 = require("./lib/icon/CollapseIcon");
16
+ Object.defineProperty(exports, "CollapseIcon", { enumerable: true, get: function () { return tslib_1.__importDefault(CollapseIcon_1).default; } });
17
+ var ExpandIcon_1 = require("./lib/icon/ExpandIcon");
18
+ Object.defineProperty(exports, "ExpandIcon", { enumerable: true, get: function () { return tslib_1.__importDefault(ExpandIcon_1).default; } });
19
+ // MiniGames
20
+ var MinigameDice_1 = require("./lib/minigame/dice/MinigameDice");
21
+ Object.defineProperty(exports, "MinigameDice", { enumerable: true, get: function () { return tslib_1.__importDefault(MinigameDice_1).default; } });
22
+ // Animations
23
+ var TypewriterComponent_1 = require("./lib/animations/TypewriterComponent");
24
+ Object.defineProperty(exports, "TypewriterComponent", { enumerable: true, get: function () { return tslib_1.__importDefault(TypewriterComponent_1).default; } });
25
+ // Phaser
26
+ tslib_1.__exportStar(require("./lib/phaser/player/playercontroller"), exports);
27
+ // NPC
28
+ tslib_1.__exportStar(require("./lib/phaser/npc/tooltipmenu"), exports);
29
+ tslib_1.__exportStar(require("./lib/phaser/npc/chatbubble"), exports);
30
+ tslib_1.__exportStar(require("./lib/phaser/npc/npchandler"), exports);
31
+ tslib_1.__exportStar(require("./lib/phaser/npc/npcdatabase"), exports);
32
+ // Monsters
33
+ tslib_1.__exportStar(require("./lib/phaser/monster/bird"), exports);
34
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../packages/laser/src/index.ts"],"names":[],"mappings":";AAAA,QAAQ;;;;AAER,kDAAwB;AAExB,sDAA4B;AAC5B,yDAA+B;AAC/B,6DAAmC;AACnC,wDAA8B;AAE9B,QAAQ;AACR,2DAAiC,CAAC,OAAO;AACzC,4DAAkC,CAAC,QAAQ;AAE3C,QAAQ;AACR,wDAAkE;AAAzD,qIAAA,OAAO,OAAgB;AAChC,oDAA8D;AAArD,iIAAA,OAAO,OAAc;AAE9B,YAAY;AACZ,iEAA2E;AAAlE,qIAAA,OAAO,OAAgB;AAEhC,aAAa;AACb,4EAAqF;AAA5E,mJAAA,OAAO,OAAuB;AAEvC,SAAS;AACT,+EAAqD;AAErD,MAAM;AACN,uEAA6C;AAC7C,sEAA4C;AAC5C,sEAA4C;AAC5C,uEAA6C;AAI7C,WAAW;AACX,oEAA0C"}
@@ -0,0 +1,8 @@
1
+ import React from 'react';
2
+ interface TypewriterComponentProps {
3
+ text: string;
4
+ speed?: number;
5
+ onComplete?: () => void;
6
+ }
7
+ declare const _default: React.NamedExoticComponent<TypewriterComponentProps>;
8
+ export default _default;
@@ -0,0 +1,53 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const tslib_1 = require("tslib");
4
+ const jsx_runtime_1 = require("react/jsx-runtime");
5
+ const react_1 = tslib_1.__importStar(require("react"));
6
+ const TypewriterComponent = ({ text, speed = 80, onComplete }) => {
7
+ const [displayedText, setDisplayedText] = (0, react_1.useState)([]);
8
+ const displayedTextRef = (0, react_1.useRef)([]);
9
+ (0, react_1.useEffect)(() => {
10
+ let timeoutId;
11
+ let currentIndex = 0;
12
+ const parts = text.split(/(<\/?span[^>]*>)/g).filter(Boolean);
13
+ const characters = [];
14
+ parts.forEach((part, index) => {
15
+ if (part.startsWith('<span') || part.startsWith('</span')) {
16
+ const tagMatch = part.match(/<span class="([^"]*)">/);
17
+ if (tagMatch) {
18
+ const className = tagMatch[1];
19
+ characters.push((0, jsx_runtime_1.jsx)("span", { className: className }, `span-${index}`));
20
+ }
21
+ else {
22
+ characters.push((0, jsx_runtime_1.jsx)("span", {}, `span-${index}`));
23
+ }
24
+ }
25
+ else {
26
+ part.split('').forEach((char, charIndex) => {
27
+ characters.push((0, jsx_runtime_1.jsx)("span", { children: char }, `char-${index}-${charIndex}`));
28
+ });
29
+ }
30
+ });
31
+ currentIndex = 0;
32
+ const typeNextCharacter = () => {
33
+ if (currentIndex < characters.length) {
34
+ displayedTextRef.current = [...displayedTextRef.current, characters[currentIndex]];
35
+ setDisplayedText([...displayedTextRef.current]);
36
+ currentIndex++;
37
+ timeoutId = window.setTimeout(typeNextCharacter, speed);
38
+ }
39
+ else if (onComplete) {
40
+ onComplete();
41
+ }
42
+ };
43
+ displayedTextRef.current = [];
44
+ setDisplayedText([]);
45
+ typeNextCharacter();
46
+ return () => {
47
+ window.clearTimeout(timeoutId);
48
+ };
49
+ }, [text, speed, onComplete]);
50
+ return (0, jsx_runtime_1.jsx)("div", { children: displayedText });
51
+ };
52
+ exports.default = react_1.default.memo(TypewriterComponent);
53
+ //# sourceMappingURL=TypewriterComponent.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TypewriterComponent.js","sourceRoot":"","sources":["../../../../../../packages/laser/src/lib/animations/TypewriterComponent.tsx"],"names":[],"mappings":";;;;AAAA,uDAA2D;AAQ3D,MAAM,mBAAmB,GAAuC,CAAC,EAAE,IAAI,EAAE,KAAK,GAAG,EAAE,EAAE,UAAU,EAAE,EAAE,EAAE;IACnG,MAAM,CAAC,aAAa,EAAE,gBAAgB,CAAC,GAAG,IAAA,gBAAQ,EAAgB,EAAE,CAAC,CAAC;IACtE,MAAM,gBAAgB,GAAG,IAAA,cAAM,EAAgB,EAAE,CAAC,CAAC;IAEnD,IAAA,iBAAS,EAAC,GAAG,EAAE;QACb,IAAI,SAAiB,CAAC;QACtB,IAAI,YAAY,GAAG,CAAC,CAAC;QAErB,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QAC9D,MAAM,UAAU,GAAkB,EAAE,CAAC;QAErC,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;YAC5B,IAAI,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;gBAC1D,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,wBAAwB,CAAC,CAAC;gBACtD,IAAI,QAAQ,EAAE,CAAC;oBACb,MAAM,SAAS,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;oBAC9B,UAAU,CAAC,IAAI,CAAC,iCAA4B,SAAS,EAAE,SAAS,IAArC,QAAQ,KAAK,EAAE,CAA+B,CAAC,CAAC;gBAC7E,CAAC;qBAAM,CAAC;oBACN,UAAU,CAAC,IAAI,CAAC,mCAAW,QAAQ,KAAK,EAAE,CAAS,CAAC,CAAC;gBACvD,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,SAAS,EAAE,EAAE;oBACzC,UAAU,CAAC,IAAI,CAAC,2CAA0C,IAAI,IAAnC,QAAQ,KAAK,IAAI,SAAS,EAAE,CAAe,CAAC,CAAC;gBAC1E,CAAC,CAAC,CAAC;YACL,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,YAAY,GAAG,CAAC,CAAC;QAEjB,MAAM,iBAAiB,GAAG,GAAG,EAAE;YAC7B,IAAI,YAAY,GAAG,UAAU,CAAC,MAAM,EAAE,CAAC;gBACrC,gBAAgB,CAAC,OAAO,GAAG,CAAC,GAAG,gBAAgB,CAAC,OAAO,EAAE,UAAU,CAAC,YAAY,CAAC,CAAC,CAAC;gBACnF,gBAAgB,CAAC,CAAC,GAAG,gBAAgB,CAAC,OAAO,CAAC,CAAC,CAAC;gBAChD,YAAY,EAAE,CAAC;gBACf,SAAS,GAAG,MAAM,CAAC,UAAU,CAAC,iBAAiB,EAAE,KAAK,CAAC,CAAC;YAC1D,CAAC;iBAAM,IAAI,UAAU,EAAE,CAAC;gBACtB,UAAU,EAAE,CAAC;YACf,CAAC;QACH,CAAC,CAAC;QAEF,gBAAgB,CAAC,OAAO,GAAG,EAAE,CAAC;QAC9B,gBAAgB,CAAC,EAAE,CAAC,CAAC;QACrB,iBAAiB,EAAE,CAAC;QAEpB,OAAO,GAAG,EAAE;YACV,MAAM,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;QACjC,CAAC,CAAC;IACJ,CAAC,EAAE,CAAC,IAAI,EAAE,KAAK,EAAE,UAAU,CAAC,CAAC,CAAC;IAE9B,OAAO,0CAAM,aAAa,GAAO,CAAC;AACpC,CAAC,CAAC;AAEF,kBAAe,eAAK,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC"}
@@ -0,0 +1,31 @@
1
+ import type { DiceRollResultEventData, CharacterEventData, GameEvent, ItemActionEventData, NPCInteractionEventData, NotificationEventData, OpenModalEventData, PlayerCombatDamage, PlayerEventData, PlayerMoveEventData, PlayerRewardEvent, PlayerStealEventData, SceneTransitionEventData, TaskCompletionEventData, WASMEventData, NPCDialogueEventData } from '../types';
2
+ export type EventData = {
3
+ openModal: OpenModalEventData;
4
+ wasmEvent: WASMEventData;
5
+ gameEvent: GameEvent;
6
+ charEvent: CharacterEventData;
7
+ playerEvent: PlayerEventData;
8
+ sceneTransition: SceneTransitionEventData;
9
+ taskCompletion: TaskCompletionEventData;
10
+ npcInteraction: NPCInteractionEventData;
11
+ npcInteractionClick: NPCInteractionEventData;
12
+ playerMove: PlayerMoveEventData;
13
+ notification: NotificationEventData;
14
+ playerSteal: PlayerStealEventData;
15
+ playerDamage: PlayerCombatDamage;
16
+ playerReward: PlayerRewardEvent;
17
+ itemAction: ItemActionEventData;
18
+ diceRollResult: DiceRollResultEventData;
19
+ npcDialogue: NPCDialogueEventData;
20
+ };
21
+ type EventHandler<T> = (data?: T) => void;
22
+ declare class EventEmitter<T extends Record<string, any>> {
23
+ private events;
24
+ private lastEmitted;
25
+ on<K extends keyof T>(event: K, handler: EventHandler<T[K]>): void;
26
+ off<K extends keyof T>(event: K, handler: EventHandler<T[K]>): void;
27
+ emit<K extends keyof T>(event: K, data?: T[K], throttleTime?: number, message?: string): void;
28
+ }
29
+ declare const eventEmitterInstance: EventEmitter<EventData>;
30
+ export { eventEmitterInstance as EventEmitter };
31
+ export default eventEmitterInstance;
@@ -0,0 +1,45 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.EventEmitter = void 0;
4
+ const debug_1 = require("./utils/debug");
5
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
6
+ class EventEmitter {
7
+ constructor() {
8
+ this.events = {};
9
+ this.lastEmitted = new Map();
10
+ }
11
+ on(event, handler) {
12
+ var _a;
13
+ if (!this.events[event]) {
14
+ this.events[event] = [];
15
+ }
16
+ (_a = this.events[event]) === null || _a === void 0 ? void 0 : _a.push(handler);
17
+ }
18
+ off(event, handler) {
19
+ var _a;
20
+ if (!this.events[event])
21
+ return;
22
+ this.events[event] = (_a = this.events[event]) === null || _a === void 0 ? void 0 : _a.filter((h) => h !== handler);
23
+ }
24
+ emit(event, data, throttleTime = 0, message) {
25
+ var _a;
26
+ const now = Date.now();
27
+ const lastEmitTime = this.lastEmitted.get(event) || 0;
28
+ if (now - lastEmitTime >= throttleTime) {
29
+ if (!this.events[event])
30
+ return;
31
+ (_a = this.events[event]) === null || _a === void 0 ? void 0 : _a.forEach((handler) => handler(data));
32
+ if (message && debug_1.Debug.isEnabled()) {
33
+ debug_1.Debug.log(`Event: ${String(event)} - Message: ${message}`);
34
+ }
35
+ if (debug_1.Debug.isEnabled()) {
36
+ debug_1.Debug.log(`Event Data: ${String(event)} - Data: ${data ? JSON.stringify(data) : 'No data'}`);
37
+ }
38
+ this.lastEmitted.set(event, now);
39
+ }
40
+ }
41
+ }
42
+ const eventEmitterInstance = new EventEmitter();
43
+ exports.EventEmitter = eventEmitterInstance;
44
+ exports.default = eventEmitterInstance;
45
+ //# sourceMappingURL=eventhandler.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"eventhandler.js","sourceRoot":"","sources":["../../../../../packages/laser/src/lib/eventhandler.ts"],"names":[],"mappings":";;;AAsBA,yCAAsC;AAwBtC,8DAA8D;AAC9D,MAAM,YAAY;IAAlB;QACU,WAAM,GAA8C,EAAE,CAAC;QACvD,gBAAW,GAAyB,IAAI,GAAG,EAAE,CAAC;IAmCxD,CAAC;IAjCC,EAAE,CAAoB,KAAQ,EAAE,OAA2B;;QACzD,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;YACxB,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC;QAC1B,CAAC;QACD,MAAA,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,0CAAE,IAAI,CAAC,OAAO,CAAC,CAAC;IACpC,CAAC;IAED,GAAG,CAAoB,KAAQ,EAAE,OAA2B;;QAC1D,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC;YAAE,OAAO;QAEhC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,MAAA,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,0CAAE,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,OAAO,CAAC,CAAC;IACxE,CAAC;IAED,IAAI,CAAoB,KAAQ,EAAE,IAAW,EAAE,YAAY,GAAG,CAAC,EAAE,OAAgB;;QAC/E,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACvB,MAAM,YAAY,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAEtD,IAAI,GAAG,GAAG,YAAY,IAAI,YAAY,EAAE,CAAC;YACvC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC;gBAAE,OAAO;YAEhC,MAAA,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,0CAAE,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;YAExD,IAAI,OAAO,IAAI,aAAK,CAAC,SAAS,EAAE,EAAE,CAAC;gBACjC,aAAK,CAAC,GAAG,CAAC,UAAU,MAAM,CAAC,KAAK,CAAC,eAAe,OAAO,EAAE,CAAC,CAAC;YAC7D,CAAC;YAED,IAAI,aAAK,CAAC,SAAS,EAAE,EAAE,CAAC;gBACtB,aAAK,CAAC,GAAG,CAAC,eAAe,MAAM,CAAC,KAAK,CAAC,YAAY,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC;YAC/F,CAAC;YAED,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;QACnC,CAAC;IACH,CAAC;CACF;AAED,MAAM,oBAAoB,GAAG,IAAI,YAAY,EAAa,CAAC;AAE1B,4CAAY;AAC7C,kBAAe,oBAAoB,CAAC"}
@@ -0,0 +1,4 @@
1
+ import React from "react";
2
+ import { IconProps } from "../../types";
3
+ declare const CollapseIcon: React.FC<IconProps>;
4
+ export default CollapseIcon;
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const tslib_1 = require("tslib");
4
+ const jsx_runtime_1 = require("react/jsx-runtime");
5
+ const CollapseIcon = (_a) => {
6
+ var { styleClass, size = 32, color = "#000", onClick } = _a, props = tslib_1.__rest(_a, ["styleClass", "size", "color", "onClick"]);
7
+ return ((0, jsx_runtime_1.jsx)("svg", Object.assign({ xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 32 32", width: size, height: size, className: styleClass, onClick: onClick }, props, { children: (0, jsx_runtime_1.jsx)("path", { stroke: color, strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: "2", d: "M11.493 8.757L8.039 5.304 5.374 7.969l3.454 3.453-2.59 2.59 7.797.004-.017-7.784-2.525 2.525zm11.679 2.665l3.454-3.453-2.665-2.665-3.454 3.453-2.525-2.525-.017 7.784 7.797-.004-2.59-2.59zM8.828 20.578l-3.454 3.453 2.665 2.665 3.454-3.453 2.526 2.525.017-7.784-7.797.004 2.589 2.59zm16.934-2.59l-7.797-.004.017 7.784 2.525-2.525 3.454 3.453 2.665-2.665-3.454-3.453 2.59-2.59z" }) })));
8
+ };
9
+ exports.default = CollapseIcon;
10
+ //# sourceMappingURL=CollapseIcon.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CollapseIcon.js","sourceRoot":"","sources":["../../../../../../packages/laser/src/lib/icon/CollapseIcon.tsx"],"names":[],"mappings":";;;;AAGA,MAAM,YAAY,GAAwB,CAAC,EAM1C,EAAE,EAAE;QANsC,EACzC,UAAU,EACV,IAAI,GAAG,EAAE,EACT,KAAK,GAAG,MAAM,EACd,OAAO,OAER,EADI,KAAK,sBALiC,0CAM1C,CADS;IAER,OAAO,CACL,8CACE,KAAK,EAAC,4BAA4B,EAClC,OAAO,EAAC,WAAW,EACnB,KAAK,EAAE,IAAI,EACX,MAAM,EAAE,IAAI,EACZ,SAAS,EAAE,UAAU,EACrB,OAAO,EAAE,OAAO,IACZ,KAAK,cAET,iCACE,MAAM,EAAE,KAAK,EACb,aAAa,EAAC,OAAO,EACrB,cAAc,EAAC,OAAO,EACtB,WAAW,EAAC,GAAG,EACf,CAAC,EAAC,wXAAwX,GACpX,IACJ,CACP,CAAC;AACJ,CAAC,CAAA;AAED,kBAAe,YAAY,CAAC"}
@@ -0,0 +1,4 @@
1
+ import React from 'react';
2
+ import { IconProps } from '../../types';
3
+ declare const ExpandIcon: React.FC<IconProps>;
4
+ export default ExpandIcon;
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const tslib_1 = require("tslib");
4
+ const jsx_runtime_1 = require("react/jsx-runtime");
5
+ const ExpandIcon = (_a) => {
6
+ var { styleClass, size = 24, color = '#000', onClick } = _a, props = tslib_1.__rest(_a, ["styleClass", "size", "color", "onClick"]);
7
+ return ((0, jsx_runtime_1.jsx)("svg", Object.assign({ xmlns: "http://www.w3.org/2000/svg", fill: "none", viewBox: "0 0 24 24", width: size, height: size, className: styleClass, onClick: onClick }, props, { children: (0, jsx_runtime_1.jsx)("path", { stroke: color, strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: "2", d: "M4 8.5V4m0 0h4.5M4 4l5.5 5.5m10.5-1V4m0 0h-4.5M20 4l-5.5 5.5M4 15.5V20m0 0h4.5M4 20l5.5-5.5m10.5 1V20m0 0h-4.5m4.5 0l-5.5-5.5" }) })));
8
+ };
9
+ exports.default = ExpandIcon;
10
+ //# sourceMappingURL=ExpandIcon.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ExpandIcon.js","sourceRoot":"","sources":["../../../../../../packages/laser/src/lib/icon/ExpandIcon.tsx"],"names":[],"mappings":";;;;AAIA,MAAM,UAAU,GAAwB,CAAC,EAMxC,EAAE,EAAE;QANoC,EACvC,UAAU,EACV,IAAI,GAAG,EAAE,EACT,KAAK,GAAG,MAAM,EACd,OAAO,OAER,EADI,KAAK,sBAL+B,0CAMxC,CADS;IAER,OAAO,CACL,8CACE,KAAK,EAAC,4BAA4B,EAClC,IAAI,EAAC,MAAM,EACX,OAAO,EAAC,WAAW,EACnB,KAAK,EAAE,IAAI,EACX,MAAM,EAAE,IAAI,EACZ,SAAS,EAAE,UAAU,EACrB,OAAO,EAAE,OAAO,IACZ,KAAK,cAET,iCACE,MAAM,EAAE,KAAK,EACb,aAAa,EAAC,OAAO,EACrB,cAAc,EAAC,OAAO,EACtB,WAAW,EAAC,GAAG,EACf,CAAC,EAAC,+HAA+H,GAC3H,IACJ,CACP,CAAC;AACJ,CAAC,CAAC;AAEF,kBAAe,UAAU,CAAC"}
@@ -0,0 +1 @@
1
+ export declare function laser(): string;
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.laser = void 0;
4
+ function laser() {
5
+ return 'laser';
6
+ }
7
+ exports.laser = laser;
8
+ //# sourceMappingURL=laser.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"laser.js","sourceRoot":"","sources":["../../../../../packages/laser/src/lib/laser.ts"],"names":[],"mappings":";;;AAAA,SAAgB,KAAK;IACnB,OAAO,OAAO,CAAC;AACjB,CAAC;AAFD,sBAEC"}
@@ -0,0 +1,55 @@
1
+ import { IConsumable, IEquipment, IJournal, IObject, IPlayerData, IPlayerInventory, IPlayerState, IPlayerStats, IQuest, IStatBoost, ITask, ItemAction, INotification, NotificationType, UserSettings, MinigameState, GameMode, MinigameAction, MinigameTextures } from '../types';
2
+ export declare const initialMinigameState: MinigameState;
3
+ export declare function completeTask<T>(quest: IQuest<T>, journalId: string, taskId: string): IQuest<T>;
4
+ export declare function addTask<T>(journal: IJournal<T>, task: ITask<T>): IJournal<T>;
5
+ export declare function updateTask<T>(journal: IJournal<T>, taskId: string, updatedTask: Partial<ITask<T>>): IJournal<T>;
6
+ export declare function removeTask<T>(journal: IJournal<T>, taskId: string): IJournal<T>;
7
+ export declare function addJournal<T>(quest: IQuest<T>, journal: IJournal<T>): IQuest<T>;
8
+ export declare function updateJournal<T>(quest: IQuest<T>, journalId: string, updatedJournal: Partial<IJournal<T>>): IQuest<T>;
9
+ export declare function removeJournal<T>(quest: IQuest<T>, journalId: string): IQuest<T>;
10
+ export declare const addItemToStore: (item: IObject) => void;
11
+ export declare const removeItemFromStore: (itemId: string) => void;
12
+ export declare function createPersistentAtom<T>(key: string, defaultValue: T): import("nanostores").WritableAtom<T>;
13
+ export declare const playerData: import("nanostores").WritableAtom<IPlayerData>;
14
+ export declare const quest: import("nanostores").WritableAtom<IQuest<any>>;
15
+ export declare const itemStore: import("nanostores").WritableAtom<Record<string, IObject>>;
16
+ export declare const notificationsStore: import("nanostores").WritableAtom<INotification[]>;
17
+ export declare const itemDB: import("nanostores").WritableAtom<Record<string, IObject>>;
18
+ export declare const settings: import("nanostores").WritableAtom<UserSettings>;
19
+ export declare const minigameState: import("nanostores").WritableAtom<MinigameState>;
20
+ export declare const getUserSetting: <T extends keyof UserSettings>(key: T) => UserSettings[T];
21
+ export declare const setUserSetting: <T extends keyof UserSettings>(key: T, value: UserSettings[T]) => void;
22
+ export declare const reloadItemDB: () => void;
23
+ export declare const queryItemDB: (itemId: string) => IObject | undefined;
24
+ export declare const addItemToBackpack: (itemId: string) => void;
25
+ export declare const getItemDetails: (itemId: string) => IObject | IEquipment | IConsumable | undefined;
26
+ export declare const createAndAddItemToBackpack: (item: Omit<IObject, 'id'>) => void;
27
+ export declare const equipItem: (slot: keyof IPlayerInventory['equipment'], itemId: string) => void;
28
+ export declare const unequipItem: (slot: keyof IPlayerInventory['equipment']) => void;
29
+ export declare const removeItemFromBackpack: (itemId: string) => void;
30
+ export declare const updatePlayerState: (updates: Partial<IPlayerState>) => void;
31
+ export declare function isPlayerInCombat(): boolean;
32
+ export declare function isPlayerDead(): boolean;
33
+ export declare function isPlayerResting(): boolean;
34
+ export declare const updatePlayerStats: (updates: Partial<IPlayerStats>) => Promise<void>;
35
+ export declare const setPlayerStat: (stat: keyof IPlayerStats, value: string) => void;
36
+ export declare const decreasePlayerHealth: (amount: number) => void;
37
+ export declare const increasePlayerHealth: (amount: number) => void;
38
+ export declare const decreasePlayerMana: (amount: number) => void;
39
+ export declare const increasePlayerMana: (amount: number) => void;
40
+ export declare const decreasePlayerEnergy: (amount: number) => void;
41
+ export declare const increasePlayerEnergy: (amount: number) => void;
42
+ export declare const applyImmediateEffects: (effects: Partial<IPlayerStats>) => void;
43
+ export declare const addStatBoost: (boost: IStatBoost) => Promise<void>;
44
+ export declare const removeStatBoost: (boostId: string) => Promise<void>;
45
+ export declare const getEffectiveStats: () => IPlayerStats;
46
+ export declare const handleBoostExpiry: () => Promise<void>;
47
+ export declare const applyConsumableEffects: (item: IConsumable) => void;
48
+ export declare const getActionEvents: (itemId: string) => ItemAction['actionEvent'][];
49
+ export declare const notificationType: Record<string, NotificationType>;
50
+ export declare function updateMinigameState(updates: Partial<MinigameState>): void;
51
+ export declare function setGameMode(gamemode: GameMode): void;
52
+ export declare function setAction(action: MinigameAction): void;
53
+ export declare function setTextures(textures: MinigameTextures): void;
54
+ export declare function updateDiceValues(diceValues: number[]): void;
55
+ export declare function setRollingStatus(isRolling: boolean): void;