@rpgjs/client 5.0.0-beta.11 → 5.0.0-beta.13
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +19 -0
- package/dist/Game/AnimationManager.d.ts +1 -0
- package/dist/Game/AnimationManager.js +3 -0
- package/dist/Game/AnimationManager.js.map +1 -1
- package/dist/Game/ClientVisuals.d.ts +61 -0
- package/dist/Game/ClientVisuals.js +96 -0
- package/dist/Game/ClientVisuals.js.map +1 -0
- package/dist/Game/ClientVisuals.spec.d.ts +1 -0
- package/dist/Game/EventComponentResolver.d.ts +16 -0
- package/dist/Game/EventComponentResolver.js +52 -0
- package/dist/Game/EventComponentResolver.js.map +1 -0
- package/dist/Game/EventComponentResolver.spec.d.ts +1 -0
- package/dist/Game/Map.js +9 -0
- package/dist/Game/Map.js.map +1 -1
- package/dist/Game/Object.d.ts +2 -0
- package/dist/Game/Object.js +22 -8
- package/dist/Game/Object.js.map +1 -1
- package/dist/Game/Object.spec.d.ts +1 -0
- package/dist/Game/ProjectileManager.d.ts +11 -2
- package/dist/Game/ProjectileManager.js +19 -2
- package/dist/Game/ProjectileManager.js.map +1 -1
- package/dist/Gui/Gui.d.ts +3 -2
- package/dist/Gui/Gui.js +18 -6
- package/dist/Gui/Gui.js.map +1 -1
- package/dist/RpgClient.d.ts +85 -1
- package/dist/RpgClientEngine.d.ts +77 -2
- package/dist/RpgClientEngine.js +290 -31
- package/dist/RpgClientEngine.js.map +1 -1
- package/dist/components/animations/fx.ce.js +58 -0
- package/dist/components/animations/fx.ce.js.map +1 -0
- package/dist/components/animations/index.d.ts +1 -0
- package/dist/components/animations/index.js +3 -1
- package/dist/components/animations/index.js.map +1 -1
- package/dist/components/character.ce.js +192 -19
- package/dist/components/character.ce.js.map +1 -1
- package/dist/components/gui/dialogbox/index.ce.js +27 -12
- package/dist/components/gui/dialogbox/index.ce.js.map +1 -1
- package/dist/components/gui/gameover.ce.js +4 -3
- package/dist/components/gui/gameover.ce.js.map +1 -1
- package/dist/components/gui/menu/equip-menu.ce.js +9 -8
- package/dist/components/gui/menu/equip-menu.ce.js.map +1 -1
- package/dist/components/gui/menu/exit-menu.ce.js +7 -5
- package/dist/components/gui/menu/exit-menu.ce.js.map +1 -1
- package/dist/components/gui/menu/items-menu.ce.js +8 -7
- package/dist/components/gui/menu/items-menu.ce.js.map +1 -1
- package/dist/components/gui/menu/main-menu.ce.js +12 -11
- package/dist/components/gui/menu/main-menu.ce.js.map +1 -1
- package/dist/components/gui/menu/options-menu.ce.js +7 -5
- package/dist/components/gui/menu/options-menu.ce.js.map +1 -1
- package/dist/components/gui/menu/skills-menu.ce.js +4 -2
- package/dist/components/gui/menu/skills-menu.ce.js.map +1 -1
- package/dist/components/gui/notification/notification.ce.js +4 -1
- package/dist/components/gui/notification/notification.ce.js.map +1 -1
- package/dist/components/gui/save-load.ce.js +10 -9
- package/dist/components/gui/save-load.ce.js.map +1 -1
- package/dist/components/gui/shop/shop.ce.js +17 -16
- package/dist/components/gui/shop/shop.ce.js.map +1 -1
- package/dist/components/gui/title-screen.ce.js +4 -3
- package/dist/components/gui/title-screen.ce.js.map +1 -1
- package/dist/components/interaction-components.ce.js +20 -0
- package/dist/components/interaction-components.ce.js.map +1 -0
- package/dist/components/scenes/canvas.ce.js +12 -7
- package/dist/components/scenes/canvas.ce.js.map +1 -1
- package/dist/components/scenes/draw-map.ce.js +18 -13
- package/dist/components/scenes/draw-map.ce.js.map +1 -1
- package/dist/i18n.d.ts +55 -0
- package/dist/i18n.js +60 -0
- package/dist/i18n.js.map +1 -0
- package/dist/i18n.spec.d.ts +1 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.js +5 -2
- package/dist/module.js +30 -3
- package/dist/module.js.map +1 -1
- package/dist/services/actionInput.d.ts +3 -1
- package/dist/services/actionInput.js +33 -1
- package/dist/services/actionInput.js.map +1 -1
- package/dist/services/interactions.d.ts +159 -0
- package/dist/services/interactions.js +460 -0
- package/dist/services/interactions.js.map +1 -0
- package/dist/services/interactions.spec.d.ts +1 -0
- package/dist/services/keyboardControls.d.ts +1 -0
- package/dist/services/keyboardControls.js +1 -0
- package/dist/services/keyboardControls.js.map +1 -1
- package/dist/services/standalone.d.ts +3 -1
- package/dist/services/standalone.js +31 -13
- package/dist/services/standalone.js.map +1 -1
- package/dist/utils/mapId.d.ts +1 -0
- package/dist/utils/mapId.js +6 -0
- package/dist/utils/mapId.js.map +1 -0
- package/package.json +4 -4
- package/src/Game/AnimationManager.ts +4 -0
- package/src/Game/ClientVisuals.spec.ts +56 -0
- package/src/Game/ClientVisuals.ts +184 -0
- package/src/Game/EventComponentResolver.spec.ts +84 -0
- package/src/Game/EventComponentResolver.ts +74 -0
- package/src/Game/Map.ts +10 -0
- package/src/Game/Object.spec.ts +59 -0
- package/src/Game/Object.ts +36 -12
- package/src/Game/ProjectileManager.spec.ts +111 -0
- package/src/Game/ProjectileManager.ts +24 -2
- package/src/Gui/Gui.spec.ts +67 -0
- package/src/Gui/Gui.ts +24 -7
- package/src/RpgClient.ts +96 -1
- package/src/RpgClientEngine.ts +378 -45
- package/src/components/animations/fx.ce +101 -0
- package/src/components/animations/index.ts +4 -2
- package/src/components/character.ce +243 -17
- package/src/components/gui/dialogbox/index.ce +35 -14
- package/src/components/gui/gameover.ce +4 -3
- package/src/components/gui/menu/equip-menu.ce +9 -8
- package/src/components/gui/menu/exit-menu.ce +4 -3
- package/src/components/gui/menu/items-menu.ce +8 -7
- package/src/components/gui/menu/main-menu.ce +12 -11
- package/src/components/gui/menu/options-menu.ce +4 -3
- package/src/components/gui/menu/skills-menu.ce +2 -1
- package/src/components/gui/notification/notification.ce +7 -1
- package/src/components/gui/save-load.ce +11 -10
- package/src/components/gui/shop/shop.ce +17 -16
- package/src/components/gui/title-screen.ce +4 -3
- package/src/components/interaction-components.ce +23 -0
- package/src/components/scenes/canvas.ce +12 -7
- package/src/components/scenes/draw-map.ce +16 -5
- package/src/i18n.spec.ts +39 -0
- package/src/i18n.ts +59 -0
- package/src/index.ts +3 -0
- package/src/module.ts +43 -10
- package/src/services/actionInput.spec.ts +54 -0
- package/src/services/actionInput.ts +68 -1
- package/src/services/interactions.spec.ts +175 -0
- package/src/services/interactions.ts +722 -0
- package/src/services/keyboardControls.ts +2 -1
- package/src/services/standalone.ts +39 -10
- package/src/utils/mapId.ts +2 -0
|
@@ -5,6 +5,7 @@ export enum Control {
|
|
|
5
5
|
Attack = 'attack',
|
|
6
6
|
Defense = 'defense',
|
|
7
7
|
Skill = 'skill',
|
|
8
|
+
Dash = 'dash',
|
|
8
9
|
Back = 'back',
|
|
9
10
|
Up = 1,
|
|
10
11
|
Down = 3,
|
|
@@ -17,4 +18,4 @@ export function provideKeyboardControls() {
|
|
|
17
18
|
provide: 'KeyboardControls',
|
|
18
19
|
useValue: null,
|
|
19
20
|
};
|
|
20
|
-
}
|
|
21
|
+
}
|
|
@@ -19,7 +19,12 @@ interface StandaloneOptions {
|
|
|
19
19
|
class BridgeWebsocket extends AbstractWebsocket {
|
|
20
20
|
private room: ServerIo;
|
|
21
21
|
private socket: ClientIo;
|
|
22
|
-
private
|
|
22
|
+
private socketRoom?: ServerIo;
|
|
23
|
+
private listeners: Array<{
|
|
24
|
+
event: string;
|
|
25
|
+
callback: (data: any) => void;
|
|
26
|
+
handler: (event: any) => void;
|
|
27
|
+
}> = [];
|
|
23
28
|
private rooms = {
|
|
24
29
|
partyFn: async (roomId: string) => {
|
|
25
30
|
this.room = new ServerIo(roomId, this.rooms);
|
|
@@ -49,6 +54,7 @@ class BridgeWebsocket extends AbstractWebsocket {
|
|
|
49
54
|
}
|
|
50
55
|
|
|
51
56
|
private async _connection(listeners?: (data: any) => void) {
|
|
57
|
+
this.detachCurrentSocket();
|
|
52
58
|
this.serverInstance = this.context.get('server')
|
|
53
59
|
this.socket = new ClientIo(this.serverInstance, 'player-client-id');
|
|
54
60
|
const url = new URL('http://localhost')
|
|
@@ -60,29 +66,42 @@ class BridgeWebsocket extends AbstractWebsocket {
|
|
|
60
66
|
})
|
|
61
67
|
listeners?.(this.socket)
|
|
62
68
|
this.room.clients.set(this.socket.id, this.socket);
|
|
63
|
-
this.
|
|
64
|
-
this.
|
|
69
|
+
this.socketRoom = this.room;
|
|
70
|
+
this.listeners.forEach(({ handler }) => {
|
|
71
|
+
this.socket.addEventListener("message", handler);
|
|
72
|
+
});
|
|
65
73
|
await this.serverInstance.onConnect(this.socket.conn as any, { request } as any);
|
|
66
74
|
return this.socket
|
|
67
75
|
}
|
|
68
76
|
|
|
69
77
|
on(key: string, callback: (data: any) => void) {
|
|
78
|
+
if (
|
|
79
|
+
this.listeners.some(
|
|
80
|
+
(listener) => listener.event === key && listener.callback === callback
|
|
81
|
+
)
|
|
82
|
+
) {
|
|
83
|
+
return;
|
|
84
|
+
}
|
|
70
85
|
const handler = (event) => {
|
|
71
86
|
const object = normalizeStandaloneMessage(event);
|
|
72
87
|
if (object.type === key) {
|
|
73
88
|
callback(object.value);
|
|
74
89
|
}
|
|
75
90
|
};
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
return;
|
|
79
|
-
}
|
|
80
|
-
this.socket.addEventListener("message", handler);
|
|
91
|
+
this.listeners.push({ event: key, callback, handler });
|
|
92
|
+
this.socket?.addEventListener("message", handler);
|
|
81
93
|
}
|
|
82
94
|
|
|
83
95
|
off(event: string, callback: (data: any) => void) {
|
|
84
|
-
|
|
85
|
-
this.
|
|
96
|
+
const remaining: typeof this.listeners = [];
|
|
97
|
+
for (const listener of this.listeners) {
|
|
98
|
+
if (listener.event === event && listener.callback === callback) {
|
|
99
|
+
this.socket?.removeEventListener("message", listener.handler);
|
|
100
|
+
continue;
|
|
101
|
+
}
|
|
102
|
+
remaining.push(listener);
|
|
103
|
+
}
|
|
104
|
+
this.listeners = remaining;
|
|
86
105
|
}
|
|
87
106
|
|
|
88
107
|
emit(event: string, data: any) {
|
|
@@ -135,6 +154,16 @@ class BridgeWebsocket extends AbstractWebsocket {
|
|
|
135
154
|
})
|
|
136
155
|
}
|
|
137
156
|
|
|
157
|
+
private detachCurrentSocket() {
|
|
158
|
+
if (!this.socket) return;
|
|
159
|
+
this.listeners.forEach(({ handler }) => {
|
|
160
|
+
this.socket.removeEventListener("message", handler);
|
|
161
|
+
});
|
|
162
|
+
this.socketRoom?.clients?.delete?.(this.socket.id);
|
|
163
|
+
this.socket = undefined as any;
|
|
164
|
+
this.socketRoom = undefined;
|
|
165
|
+
}
|
|
166
|
+
|
|
138
167
|
getServer() {
|
|
139
168
|
return this.serverInstance
|
|
140
169
|
}
|