@rpgjs/server 4.2.2 → 5.0.0-alpha.0

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 (219) hide show
  1. package/{lib → dist}/Gui/DialogGui.d.ts +1 -2
  2. package/{lib → dist}/Gui/Gui.d.ts +1 -2
  3. package/dist/Player/BattleManager.d.ts +22 -0
  4. package/dist/Player/ClassManager.d.ts +18 -0
  5. package/dist/Player/Event.d.ts +0 -0
  6. package/dist/Player/ItemManager.d.ts +17 -0
  7. package/dist/Player/MoveManager.d.ts +177 -0
  8. package/dist/Player/ParameterManager.d.ts +42 -0
  9. package/dist/Player/Player.d.ts +73 -0
  10. package/dist/Player/SkillManager.d.ts +23 -0
  11. package/dist/Player/StateManager.d.ts +39 -0
  12. package/{lib → dist}/RpgServer.d.ts +34 -17
  13. package/dist/RpgServerEngine.d.ts +5 -0
  14. package/dist/core/context.d.ts +2 -0
  15. package/dist/core/inject.d.ts +5 -0
  16. package/dist/core/setup.d.ts +6 -0
  17. package/dist/index.d.ts +9 -0
  18. package/dist/index.js +29673 -0
  19. package/dist/index.js.map +1 -0
  20. package/dist/module.d.ts +2 -0
  21. package/dist/rooms/lobby.d.ts +6 -0
  22. package/dist/rooms/map.d.ts +110 -0
  23. package/package.json +16 -38
  24. package/src/Gui/DialogGui.ts +3 -4
  25. package/src/Gui/Gui.ts +4 -6
  26. package/src/Player/BattleManager.ts +108 -99
  27. package/src/Player/ClassManager.ts +47 -46
  28. package/src/Player/ComponentManager.ts +26 -535
  29. package/src/Player/EffectManager.ts +44 -59
  30. package/src/Player/ElementManager.ts +70 -72
  31. package/src/Player/Event.ts +0 -0
  32. package/src/Player/GoldManager.ts +24 -6
  33. package/src/Player/GuiManager.ts +106 -97
  34. package/src/Player/ItemFixture.ts +22 -17
  35. package/src/Player/ItemManager.ts +234 -225
  36. package/src/Player/MoveManager.ts +1047 -457
  37. package/src/Player/ParameterManager.ts +59 -37
  38. package/src/Player/Player.ts +272 -1058
  39. package/src/Player/SkillManager.ts +146 -137
  40. package/src/Player/StateManager.ts +124 -98
  41. package/src/Player/VariableManager.ts +23 -3
  42. package/src/RpgServer.ts +38 -14
  43. package/src/RpgServerEngine.ts +7 -0
  44. package/src/core/context.ts +3 -0
  45. package/src/core/inject.ts +17 -0
  46. package/src/core/setup.ts +20 -0
  47. package/src/index.ts +9 -31
  48. package/src/module.ts +32 -0
  49. package/src/presets/index.ts +1 -3
  50. package/src/rooms/lobby.ts +24 -0
  51. package/src/rooms/map.ts +311 -0
  52. package/tsconfig.json +26 -23
  53. package/vite.config.ts +21 -0
  54. package/CHANGELOG.md +0 -163
  55. package/LICENSE +0 -19
  56. package/browser/manifest.json +0 -7
  57. package/browser/rpg.server.js +0 -22372
  58. package/browser/rpg.server.umd.cjs +0 -22403
  59. package/lib/Game/EventManager.d.ts +0 -54
  60. package/lib/Game/EventManager.js +0 -107
  61. package/lib/Game/EventManager.js.map +0 -1
  62. package/lib/Game/Map.d.ts +0 -191
  63. package/lib/Game/Map.js +0 -414
  64. package/lib/Game/Map.js.map +0 -1
  65. package/lib/Game/WorldMaps.d.ts +0 -17
  66. package/lib/Game/WorldMaps.js +0 -28
  67. package/lib/Game/WorldMaps.js.map +0 -1
  68. package/lib/Gui/DialogGui.js +0 -57
  69. package/lib/Gui/DialogGui.js.map +0 -1
  70. package/lib/Gui/Gui.js +0 -37
  71. package/lib/Gui/Gui.js.map +0 -1
  72. package/lib/Gui/MenuGui.js +0 -23
  73. package/lib/Gui/MenuGui.js.map +0 -1
  74. package/lib/Gui/NotificationGui.js +0 -8
  75. package/lib/Gui/NotificationGui.js.map +0 -1
  76. package/lib/Gui/ShopGui.js +0 -40
  77. package/lib/Gui/ShopGui.js.map +0 -1
  78. package/lib/Gui/index.js +0 -7
  79. package/lib/Gui/index.js.map +0 -1
  80. package/lib/Interfaces/Gui.d.ts +0 -4
  81. package/lib/Interfaces/Gui.js +0 -2
  82. package/lib/Interfaces/Gui.js.map +0 -1
  83. package/lib/Interfaces/StateStore.d.ts +0 -5
  84. package/lib/Interfaces/StateStore.js +0 -2
  85. package/lib/Interfaces/StateStore.js.map +0 -1
  86. package/lib/MatchMaker.d.ts +0 -24
  87. package/lib/MatchMaker.js +0 -42
  88. package/lib/MatchMaker.js.map +0 -1
  89. package/lib/Monitor/index.d.ts +0 -17
  90. package/lib/Monitor/index.js +0 -72
  91. package/lib/Monitor/index.js.map +0 -1
  92. package/lib/Player/BattleManager.d.ts +0 -36
  93. package/lib/Player/BattleManager.js +0 -101
  94. package/lib/Player/BattleManager.js.map +0 -1
  95. package/lib/Player/ClassManager.d.ts +0 -47
  96. package/lib/Player/ClassManager.js +0 -65
  97. package/lib/Player/ClassManager.js.map +0 -1
  98. package/lib/Player/ComponentManager.d.ts +0 -397
  99. package/lib/Player/ComponentManager.js +0 -505
  100. package/lib/Player/ComponentManager.js.map +0 -1
  101. package/lib/Player/EffectManager.d.ts +0 -46
  102. package/lib/Player/EffectManager.js +0 -75
  103. package/lib/Player/EffectManager.js.map +0 -1
  104. package/lib/Player/ElementManager.d.ts +0 -108
  105. package/lib/Player/ElementManager.js +0 -120
  106. package/lib/Player/ElementManager.js.map +0 -1
  107. package/lib/Player/GoldManager.d.ts +0 -17
  108. package/lib/Player/GoldManager.js +0 -27
  109. package/lib/Player/GoldManager.js.map +0 -1
  110. package/lib/Player/GuiManager.d.ts +0 -247
  111. package/lib/Player/GuiManager.js +0 -291
  112. package/lib/Player/GuiManager.js.map +0 -1
  113. package/lib/Player/ItemFixture.d.ts +0 -7
  114. package/lib/Player/ItemFixture.js +0 -19
  115. package/lib/Player/ItemFixture.js.map +0 -1
  116. package/lib/Player/ItemManager.d.ts +0 -331
  117. package/lib/Player/ItemManager.js +0 -475
  118. package/lib/Player/ItemManager.js.map +0 -1
  119. package/lib/Player/MoveManager.d.ts +0 -333
  120. package/lib/Player/MoveManager.js +0 -450
  121. package/lib/Player/MoveManager.js.map +0 -1
  122. package/lib/Player/ParameterManager.d.ts +0 -316
  123. package/lib/Player/ParameterManager.js +0 -408
  124. package/lib/Player/ParameterManager.js.map +0 -1
  125. package/lib/Player/Player.d.ts +0 -828
  126. package/lib/Player/Player.js +0 -927
  127. package/lib/Player/Player.js.map +0 -1
  128. package/lib/Player/SkillManager.d.ts +0 -163
  129. package/lib/Player/SkillManager.js +0 -223
  130. package/lib/Player/SkillManager.js.map +0 -1
  131. package/lib/Player/StateManager.d.ts +0 -185
  132. package/lib/Player/StateManager.js +0 -228
  133. package/lib/Player/StateManager.js.map +0 -1
  134. package/lib/Player/VariableManager.d.ts +0 -46
  135. package/lib/Player/VariableManager.js +0 -52
  136. package/lib/Player/VariableManager.js.map +0 -1
  137. package/lib/Query.d.ts +0 -127
  138. package/lib/Query.js +0 -159
  139. package/lib/Query.js.map +0 -1
  140. package/lib/RpgServer.js +0 -2
  141. package/lib/RpgServer.js.map +0 -1
  142. package/lib/Scenes/Map.d.ts +0 -136
  143. package/lib/Scenes/Map.js +0 -273
  144. package/lib/Scenes/Map.js.map +0 -1
  145. package/lib/decorators/event.d.ts +0 -43
  146. package/lib/decorators/event.js +0 -13
  147. package/lib/decorators/event.js.map +0 -1
  148. package/lib/decorators/map.d.ts +0 -178
  149. package/lib/decorators/map.js +0 -43
  150. package/lib/decorators/map.js.map +0 -1
  151. package/lib/entry-point.d.ts +0 -34
  152. package/lib/entry-point.js +0 -70
  153. package/lib/entry-point.js.map +0 -1
  154. package/lib/express/api.d.ts +0 -3
  155. package/lib/express/api.js +0 -105
  156. package/lib/express/api.js.map +0 -1
  157. package/lib/express/errors/NotAuthorized.d.ts +0 -4
  158. package/lib/express/errors/NotAuthorized.js +0 -7
  159. package/lib/express/errors/NotAuthorized.js.map +0 -1
  160. package/lib/express/errors/NotFound.d.ts +0 -4
  161. package/lib/express/errors/NotFound.js +0 -7
  162. package/lib/express/errors/NotFound.js.map +0 -1
  163. package/lib/express/server.d.ts +0 -16
  164. package/lib/express/server.js +0 -65
  165. package/lib/express/server.js.map +0 -1
  166. package/lib/index.d.ts +0 -20
  167. package/lib/index.js +0 -19
  168. package/lib/index.js.map +0 -1
  169. package/lib/inject.d.ts +0 -22
  170. package/lib/inject.js +0 -29
  171. package/lib/inject.js.map +0 -1
  172. package/lib/logs/index.js +0 -6
  173. package/lib/logs/index.js.map +0 -1
  174. package/lib/logs/item.js +0 -34
  175. package/lib/logs/item.js.map +0 -1
  176. package/lib/logs/log.js +0 -7
  177. package/lib/logs/log.js.map +0 -1
  178. package/lib/logs/skill.js +0 -19
  179. package/lib/logs/skill.js.map +0 -1
  180. package/lib/logs/state.js +0 -13
  181. package/lib/logs/state.js.map +0 -1
  182. package/lib/models/Item.d.ts +0 -10
  183. package/lib/models/Item.js +0 -2
  184. package/lib/models/Item.js.map +0 -1
  185. package/lib/presets/index.js +0 -65
  186. package/lib/presets/index.js.map +0 -1
  187. package/lib/server.d.ts +0 -137
  188. package/lib/server.js +0 -443
  189. package/lib/server.js.map +0 -1
  190. package/rpg.toml +0 -14
  191. package/src/Game/EventManager.ts +0 -125
  192. package/src/Game/Map.ts +0 -495
  193. package/src/Game/WorldMaps.ts +0 -45
  194. package/src/Interfaces/Gui.ts +0 -4
  195. package/src/Interfaces/StateStore.ts +0 -5
  196. package/src/MatchMaker.ts +0 -65
  197. package/src/Monitor/index.ts +0 -78
  198. package/src/Query.ts +0 -172
  199. package/src/Scenes/Map.ts +0 -310
  200. package/src/decorators/event.ts +0 -58
  201. package/src/decorators/map.ts +0 -226
  202. package/src/entry-point.ts +0 -111
  203. package/src/express/api.ts +0 -118
  204. package/src/express/errors/NotAuthorized.ts +0 -6
  205. package/src/express/errors/NotFound.ts +0 -6
  206. package/src/express/server.ts +0 -87
  207. package/src/inject.ts +0 -33
  208. package/src/models/Item.ts +0 -11
  209. package/src/server.ts +0 -459
  210. /package/{lib → dist}/Gui/MenuGui.d.ts +0 -0
  211. /package/{lib → dist}/Gui/NotificationGui.d.ts +0 -0
  212. /package/{lib → dist}/Gui/ShopGui.d.ts +0 -0
  213. /package/{lib → dist}/Gui/index.d.ts +0 -0
  214. /package/{lib → dist}/logs/index.d.ts +0 -0
  215. /package/{lib → dist}/logs/item.d.ts +0 -0
  216. /package/{lib → dist}/logs/log.d.ts +0 -0
  217. /package/{lib → dist}/logs/skill.d.ts +0 -0
  218. /package/{lib → dist}/logs/state.d.ts +0 -0
  219. /package/{lib → dist}/presets/index.d.ts +0 -0
package/lib/Game/Map.js DELETED
@@ -1,414 +0,0 @@
1
- import { RpgCommonMap, Utils } from '@rpgjs/common';
2
- import { TiledParserFile, TiledParser } from '@rpgjs/tiled';
3
- import { RpgEvent } from '../Player/Player.js';
4
- import { Move } from '../Player/MoveManager.js';
5
- import path from 'path';
6
- import { World } from 'simple-room';
7
- import { EventManager, EventMode } from './EventManager.js';
8
- class AutoEvent extends RpgEvent {
9
- onInit() {
10
- const { graphic, direction, speed, frequency, move } = this.properties;
11
- if (graphic) {
12
- this.setGraphic(graphic);
13
- }
14
- if (direction) {
15
- this.changeDirection(direction);
16
- }
17
- if (speed) {
18
- this.speed = speed;
19
- }
20
- if (frequency) {
21
- this.frequency = frequency;
22
- }
23
- if (move == 'random') {
24
- this.infiniteMoveRoute([Move.tileRandom()]);
25
- }
26
- }
27
- async onAction(player) {
28
- const { text } = this.properties;
29
- if (text) {
30
- await player.showText(text, {
31
- talkWith: this
32
- });
33
- }
34
- }
35
- }
36
- AutoEvent.hitbox = {};
37
- export class RpgMap extends RpgCommonMap {
38
- constructor(_server) {
39
- super();
40
- this._server = _server;
41
- this.events = {};
42
- }
43
- // alias of users property in simple-room package
44
- /**
45
- * @title Players list
46
- * @prop { { [playerId: string]: RpgPlayer } } [players]
47
- * @readonly
48
- * @memberof Map
49
- */
50
- get players() {
51
- return this['users'];
52
- }
53
- /**
54
- * @title Number of players
55
- * @prop {number} [nbPlayers]
56
- * @readonly
57
- * @memberof Map
58
- */
59
- get nbPlayers() {
60
- return Object.keys(this.players).length;
61
- }
62
- $additionalEmitProperties(player) {
63
- const lastFramePositions = player['_lastFramePositions'];
64
- let pos;
65
- let lastFrame;
66
- if (lastFramePositions) {
67
- pos = lastFramePositions.position;
68
- lastFrame = lastFramePositions.frame;
69
- }
70
- const data = { frame: lastFrame, pos };
71
- return data;
72
- }
73
- async load() {
74
- if (RpgCommonMap.buffer.has(this.id)) {
75
- return;
76
- }
77
- const data = await this.parseTmx(this.file);
78
- super.load(data);
79
- this.getAllObjects().forEach(this.createShape.bind(this));
80
- this.loadProperties(data.properties);
81
- this._server.workers?.call('loadMap', {
82
- id: this.id,
83
- data
84
- });
85
- RpgCommonMap.buffer.set(this.id, this);
86
- this.loadCommonEvents(this._server.inputOptions.events);
87
- this.createDynamicEvent(this._events);
88
- if (this.onLoad)
89
- this.onLoad();
90
- }
91
- /**
92
- * Update the map with new data. Data can be a string (TMX content) or an object (parsed TMX content)
93
- * New Map data will be sent to all players on the map
94
- *
95
- * @title Update map
96
- * @method map.update(data)
97
- * @since 4.0.0
98
- * @returns {Promise<void>}
99
- * @param {object | string} data
100
- * @memberof Map
101
- */
102
- async update(data) {
103
- let objectData;
104
- // Data is XML (TMX content)
105
- if (typeof data == 'string') {
106
- objectData = await this.parseTmx(data, this.file);
107
- }
108
- else {
109
- objectData = data;
110
- }
111
- super.load(objectData);
112
- RpgCommonMap.buffer.set(this.id, this);
113
- this.clearShapes();
114
- this.getAllObjects().forEach(this.createShape.bind(this));
115
- for (let playerId in this.players) {
116
- const player = this.players[playerId];
117
- player.emitSceneMap();
118
- }
119
- }
120
- /**
121
- * Update tileset with new data. Data can be a string (TSX content) or an object (TiledTileset)
122
- * Cache will be removed for this tileset
123
- * New tileset data will be sent to all players on the map
124
- * Warning: tileset is not updated for all maps, only for the current map
125
- *
126
- * @title Update tileset
127
- * @method map.updateTileset(data)
128
- * @since 4.0.0
129
- * @returns {<void>}
130
- * @param {TiledTileset | string} data
131
- * @memberof Map
132
- */
133
- updateTileset(data) {
134
- let objectData;
135
- // Data is XML (TMX content)
136
- if (typeof data == 'string') {
137
- const parser = new TiledParser(data, this.file);
138
- objectData = parser.parseTileset();
139
- }
140
- else {
141
- objectData = data;
142
- }
143
- this.removeCacheTileset(objectData.name);
144
- this.update({
145
- ...this.data,
146
- tilesets: this.data.tilesets.map((tileset) => {
147
- if (tileset.name == objectData.name) {
148
- objectData.firstgid = tileset.firstgid;
149
- return objectData;
150
- }
151
- return tileset;
152
- })
153
- });
154
- }
155
- /**
156
- * Remove the map from the server. If there are still players on the map, an error will be thrown
157
- * Not delete the map file, only in memory
158
- *
159
- * @title Remove map
160
- * @method map.remove()
161
- * @since 4.0.0
162
- * @returns {void}
163
- * @throws {Error} If there are still players on the map
164
- * @memberof Map
165
- * */
166
- remove(ignorePlayers = false) {
167
- const players = Object.values(this.players);
168
- if (players.length > 0 && !ignorePlayers) {
169
- throw new Error(`Cannot remove map ${this.id} because there are still players on it`);
170
- }
171
- for (let eventId in this.events) {
172
- this.removeEvent(eventId);
173
- }
174
- RpgCommonMap.buffer.delete(this.id);
175
- World.removeRoom(this.id);
176
- }
177
- async parseTmx(file, relativePath = '') {
178
- // @ts-ignore
179
- const hasAssetsPath = !!this._server.envs.VITE_BUILT;
180
- const parser = new TiledParserFile(file, {
181
- basePath: process.env.NODE_ENV == 'test' ? '.' : '',
182
- staticDir: hasAssetsPath ? path.join(this._server.inputOptions.basePath, this._server.assetsPath) : '',
183
- relativePath
184
- });
185
- const data = await parser.parseFilePromise({
186
- getOnlyBasename: hasAssetsPath
187
- });
188
- return data;
189
- }
190
- loadProperties(properties) {
191
- for (let key in properties) {
192
- this[key] = properties[key];
193
- }
194
- }
195
- get game() {
196
- return this._server.gameEngine;
197
- }
198
- // Hook: called by simple-room package
199
- onLeave(player) {
200
- this.removeObject(player);
201
- }
202
- /**
203
- * Loads common events onto the game map.
204
- *
205
- * @private
206
- * @param {RpgClassEvent<RpgEvent>[]} commonEvents - An array of common events to load.
207
- * @param {RpgPlayer} [player] - The player instance on which to create the dynamic events. If not provided, the function will use the current instance.
208
- * @returns {void}
209
- */
210
- // @internal
211
- loadCommonEvents(commonEvents, player) {
212
- let events = [];
213
- this.getShapes().forEach(shape => {
214
- const findEvent = commonEvents.find(event => event._name == shape.name);
215
- if (!findEvent)
216
- return;
217
- const { x, y, } = shape.hitbox;
218
- events.push({
219
- x,
220
- y,
221
- event: findEvent
222
- });
223
- });
224
- if (player) {
225
- player.createDynamicEvent(events, false);
226
- }
227
- else {
228
- this.createDynamicEvent(events);
229
- }
230
- }
231
- // TODO
232
- autoLoadEvent() {
233
- this.getShapes().forEach(shape => {
234
- const { properties } = shape;
235
- const { x, y, pos, w, h } = shape.hitbox;
236
- if (shape.isEvent() && !this.events[shape.name]) {
237
- const mode = properties.mode || EventMode.Shared;
238
- AutoEvent.prototype['_name'] = shape.name;
239
- AutoEvent.mode = mode;
240
- AutoEvent.hitbox = {
241
- width: 32,
242
- height: 16
243
- };
244
- const event = this.createEvent({
245
- x,
246
- y,
247
- event: AutoEvent
248
- }, mode, shape);
249
- if (event)
250
- this.events[shape.name] = event;
251
- }
252
- });
253
- }
254
- /**
255
- * Edit a tile on the map. All players on the map will see the modified tile
256
- *
257
- *
258
- * @title Change Tile in map
259
- * @since 3.0.0-beta.4
260
- * @method map.setTile(x,y,layer,tileInfo)
261
- * @param {number} x Position X
262
- * @param {number} y Position Y
263
- * @param {string | ((layer: any) => boolean)} layer Name of the layer where you want to put a tile. OYou can also put a function that will act as a filter. The first parameter is the layer and you return a boolean to indicate if you modify the tile of this layer or not
264
- * @param {object} tileInfo Object with the following properties:
265
- * - {number} gid: The tile number in tileset (from 1)
266
- * - {object} properties Property of the tile. You own object. To set a collision, set the `collision:true` property
267
- * @example
268
- * ```ts
269
- * map.setTile(15, 18, 'mylayer', { gid: 2 })
270
- * ```
271
- * @returns {void}
272
- * @memberof Map
273
- */
274
- setTile(x, y, layerFilter, tileInfo) {
275
- const tiles = super.setTile(x, y, layerFilter, tileInfo);
276
- const players = Object.values(this['users']);
277
- for (let player of players) {
278
- player.emit('changeTile', tiles);
279
- }
280
- return tiles;
281
- }
282
- getEventShape(eventName) {
283
- return this.getShapes().find(shape => shape.name == eventName);
284
- }
285
- /**
286
- * Dynamically create an event in Shared mode
287
- *
288
- * ```ts
289
- * @EventData({
290
- * name: 'EV-1'
291
- * })
292
- * class MyEvent extends RpgEvent {
293
- * onAction() {
294
- * console.log('ok')
295
- * }
296
- * }
297
- *
298
- * map.createDynamicEvent({
299
- * x: 100,
300
- * y: 100,
301
- * event: MyEvent
302
- * })
303
- * ```
304
- *
305
- * You can also put an array of objects to create several events at once
306
- *
307
- * @title Create Dynamic Event
308
- * @since 3.0.0-beta.4
309
- * @method map.createDynamicEvent(eventObj|eventObj[])
310
- * @param { { x: number, y: number, z?: number, event: eventClass } } eventsList
311
- * @returns { { [eventId: string]: RpgEvent } }
312
- * @memberof Map
313
- */
314
- createDynamicEvent(eventsList) {
315
- if (!eventsList)
316
- return {};
317
- if (!Utils.isArray(eventsList)) {
318
- eventsList = [eventsList];
319
- }
320
- const events = this.createEvents(eventsList, EventMode.Shared);
321
- let ret = {};
322
- for (let key in events) {
323
- this.events[key] = events[key];
324
- this.events[key].updateInVirtualGrid();
325
- this.events[key].execMethod('onInit');
326
- // force to get Proxy object to sync with client
327
- ret = { ...ret, [key]: this.events[key] };
328
- }
329
- return ret;
330
- }
331
- createEvent(obj, mode, shape) {
332
- let event, position;
333
- // We retrieve the information of the event ([Event] or [{event: Event, x: number, y: number}])
334
- if (obj.x === undefined) {
335
- event = obj;
336
- }
337
- else {
338
- event = obj.event;
339
- position = { x: obj.x, y: obj.y, z: obj.z ?? 0 };
340
- }
341
- // The event is ignored if the mode is different.
342
- if (event.mode != mode) {
343
- return null;
344
- }
345
- // Create an instance of RpgEvent and assign its options
346
- const ev = this.game.addEvent(event);
347
- const _shape = shape || this.getEventShape(ev.name);
348
- ev.map = this.id;
349
- ev.width = event.width || this.tileWidth;
350
- ev.height = event.height || this.tileHeight;
351
- if (_shape && _shape.properties)
352
- ev.properties = _shape.properties;
353
- if (event.hitbox)
354
- ev.setHitbox(event.hitbox.width, event.hitbox.height);
355
- ev.teleport(position || ev.name);
356
- return ev;
357
- }
358
- createEvents(eventsList, mode) {
359
- const events = {};
360
- if (!eventsList)
361
- return events;
362
- for (let obj of eventsList) {
363
- const ev = this.createEvent(obj, mode);
364
- if (ev) {
365
- events[ev.id] = ev;
366
- }
367
- }
368
- return events;
369
- }
370
- /**
371
- * Allows to create a temporary hitbox on the map that can have a movement
372
- For example, you can use it to explode a bomb and find all the affected players, or during a sword strike, you can create a moving hitbox and find the affected players again
373
- * @title Create a temporary and moving hitbox
374
- * @since 3.2.0
375
- * @method map.createMovingHitbox(hitboxes,options)
376
- * @param {Array<{ width: number, height: number, x: number, y: number }>} hitboxes Create several hitboxes that will give an effect of movement
377
- * @param {object} [options]
378
- * @param {speed} [options.speed=1] speed of movement (in frames)
379
- * @returns {Observable<AbstractObject>} You find the methods of position and movement of an event
380
- * @memberof Map
381
- * @example
382
- *
383
- * ```ts
384
- * // Two hitboxes that will be done very quickly
385
- * map.createMovingHitbox(
386
- * [
387
- * { x: 0, y: 0, width: 100, height: 100 },
388
- * { x: 20, y: 0, width: 100, height: 100 }
389
- * ]
390
- * ).subscribe({
391
- * next(hitbox) {
392
- * console.log(hitbox.otherPlayersCollision)
393
- * },
394
- * complete() {
395
- * console.log('finish')
396
- * }
397
- * })
398
- * ```
399
- */
400
- createMovingHitbox(hitboxes, options = {}) {
401
- return this._createMovingHitbox(this.game, this._server.tick, this.id, hitboxes, options);
402
- }
403
- setSync(schema) {
404
- return this.$setSchema(schema);
405
- }
406
- // Reflects itself. Just for compatibility with the EventManager class
407
- getCurrentMap() {
408
- return this;
409
- }
410
- }
411
- Utils.applyMixins(RpgMap, [
412
- EventManager
413
- ]);
414
- //# sourceMappingURL=Map.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Map.js","sourceRoot":"","sources":["../../src/Game/Map.ts"],"names":[],"mappings":"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"}
@@ -1,17 +0,0 @@
1
- import { RpgCommonWorldMaps } from '@rpgjs/common';
2
- import { TiledWorld, TiledMap, TiledWorldMap } from '@rpgjs/tiled';
3
- import { SceneMap } from '../Scenes/Map';
4
- export type RpgTiledWorldMap = {
5
- id?: string;
6
- fileName: string | TiledMap;
7
- } & TiledWorldMap;
8
- export type RpgTiledWorld = {
9
- maps: RpgTiledWorldMap[];
10
- } & TiledWorld;
11
- export interface WorldMap extends RpgTiledWorld {
12
- id?: string;
13
- basePath?: string;
14
- }
15
- export declare class RpgWorldMaps extends RpgCommonWorldMaps {
16
- load(world: WorldMap, sceneMap: SceneMap): this;
17
- }
@@ -1,28 +0,0 @@
1
- import { RpgCommonWorldMaps, Utils } from '@rpgjs/common';
2
- export class RpgWorldMaps extends RpgCommonWorldMaps {
3
- load(world, sceneMap) {
4
- for (let worldMap of world.maps) {
5
- const { fileName } = worldMap;
6
- let id, map;
7
- if (worldMap.id) {
8
- id = worldMap.id;
9
- }
10
- else if (Utils.isString(fileName)) {
11
- id = Utils.extractId(fileName);
12
- }
13
- const create = () => sceneMap.createDynamicMap({
14
- id,
15
- file: world.basePath ? `${world.basePath}/${fileName}` : fileName
16
- });
17
- if (!id) {
18
- map = create();
19
- }
20
- else {
21
- map = sceneMap.getMapBydId(id) ?? create();
22
- }
23
- this.addMap(worldMap, map);
24
- }
25
- return this;
26
- }
27
- }
28
- //# sourceMappingURL=WorldMaps.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"WorldMaps.js","sourceRoot":"","sources":["../../src/Game/WorldMaps.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,KAAK,EAAE,MAAM,eAAe,CAAA;AAmBzD,MAAM,OAAO,YAAa,SAAQ,kBAAkB;IAChD,IAAI,CAAC,KAAe,EAAE,QAAkB;QACpC,KAAK,IAAI,QAAQ,IAAI,KAAK,CAAC,IAAI,EAAE;YAC7B,MAAM,EAAE,QAAQ,EAAE,GAAG,QAAQ,CAAA;YAC7B,IAAI,EAAE,EAAE,GAAwB,CAAA;YAChC,IAAI,QAAQ,CAAC,EAAE,EAAE;gBACb,EAAE,GAAG,QAAQ,CAAC,EAAE,CAAA;aACnB;iBACI,IAAI,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE;gBAC/B,EAAE,GAAG,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAA;aACjC;YACD,MAAM,MAAM,GAAG,GAAG,EAAE,CAAC,QAAQ,CAAC,gBAAgB,CAAC;gBAC3C,EAAE;gBACF,IAAI,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,QAAQ,IAAI,QAAQ,EAAE,CAAC,CAAC,CAAC,QAAQ;aACpE,CAAC,CAAA;YACF,IAAI,CAAC,EAAE,EAAE;gBACL,GAAG,GAAG,MAAM,EAAE,CAAA;aACjB;iBACI;gBACD,GAAG,GAAG,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC,IAAI,MAAM,EAAE,CAAA;aAC7C;YACD,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAA;SAC7B;QACD,OAAO,IAAI,CAAA;IACf,CAAC;CACJ"}
@@ -1,57 +0,0 @@
1
- import { PrebuiltGui } from '@rpgjs/common';
2
- import { Gui } from './Gui.js';
3
- import { Move } from '../Player/MoveManager.js';
4
- export var DialogPosition;
5
- (function (DialogPosition) {
6
- DialogPosition["Top"] = "top";
7
- DialogPosition["Bottom"] = "bottom";
8
- DialogPosition["Middle"] = "middle";
9
- })(DialogPosition || (DialogPosition = {}));
10
- export class DialogGui extends Gui {
11
- constructor(player) {
12
- super(PrebuiltGui.Dialog, player);
13
- }
14
- openDialog(message, options) {
15
- if (!options.choices)
16
- options.choices = [];
17
- if (options.autoClose == undefined)
18
- options.autoClose = false;
19
- if (!options.position)
20
- options.position = DialogPosition.Bottom;
21
- if (options.fullWidth == undefined)
22
- options.fullWidth = true;
23
- if (options.typewriterEffect == undefined)
24
- options.typewriterEffect = true;
25
- const event = options.talkWith;
26
- let memoryDir;
27
- if (event) {
28
- memoryDir = event.direction;
29
- event.breakRoutes(true);
30
- event.moveRoutes([Move.turnTowardPlayer(this.player)]);
31
- }
32
- const data = {
33
- autoClose: options.autoClose,
34
- position: options.position,
35
- fullWidth: options.fullWidth,
36
- typewriterEffect: options.typewriterEffect,
37
- // remove value property. It is not useful to know this on the client side.
38
- choices: options.choices.map(choice => ({
39
- text: choice.text
40
- }))
41
- };
42
- return super.open({
43
- message,
44
- ...data
45
- }, {
46
- waitingAction: true,
47
- blockPlayerInput: true
48
- }).then((val) => {
49
- if (event) {
50
- event.replayRoutes();
51
- event.direction = memoryDir;
52
- }
53
- return val;
54
- });
55
- }
56
- }
57
- //# sourceMappingURL=DialogGui.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"DialogGui.js","sourceRoot":"","sources":["../../src/Gui/DialogGui.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAC3C,OAAO,EAAE,GAAG,EAAE,MAAM,OAAO,CAAA;AAG3B,OAAO,EAAE,IAAI,EAAE,MAAM,uBAAuB,CAAA;AAE5C,MAAM,CAAN,IAAY,cAIX;AAJD,WAAY,cAAc;IACtB,6BAAW,CAAA;IACX,mCAAiB,CAAA;IACjB,mCAAiB,CAAA;AACrB,CAAC,EAJW,cAAc,KAAd,cAAc,QAIzB;AAcD,MAAM,OAAO,SAAU,SAAQ,GAAG;IAC9B,YAAY,MAAiB;QACzB,KAAK,CAAC,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IACrC,CAAC;IAED,UAAU,CAAC,OAAe,EAAE,OAAsB;QAC9C,IAAI,CAAC,OAAO,CAAC,OAAO;YAAE,OAAO,CAAC,OAAO,GAAG,EAAE,CAAA;QAC1C,IAAI,OAAO,CAAC,SAAS,IAAI,SAAS;YAAE,OAAO,CAAC,SAAS,GAAG,KAAK,CAAA;QAC7D,IAAI,CAAC,OAAO,CAAC,QAAQ;YAAE,OAAO,CAAC,QAAQ,GAAG,cAAc,CAAC,MAAM,CAAA;QAC/D,IAAI,OAAO,CAAC,SAAS,IAAI,SAAS;YAAE,OAAO,CAAC,SAAS,GAAG,IAAI,CAAA;QAC5D,IAAI,OAAO,CAAC,gBAAgB,IAAK,SAAS;YAAE,OAAO,CAAC,gBAAgB,GAAG,IAAI,CAAA;QAC3E,MAAM,KAAK,GAAG,OAAO,CAAC,QAAQ,CAAA;QAC9B,IAAI,SAAS,CAAA;QACb,IAAI,KAAK,EAAE;YACP,SAAS,GAAG,KAAK,CAAC,SAAS,CAAA;YAC3B,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,CAAA;YACvB,KAAK,CAAC,UAAU,CAAC,CAAE,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAE,CAAC,CAAA;SAC3D;QACD,MAAM,IAAI,GAAG;YACT,SAAS,EAAE,OAAO,CAAC,SAAS;YAC5B,QAAQ,EAAE,OAAO,CAAC,QAAQ;YAC1B,SAAS,EAAE,OAAO,CAAC,SAAS;YAC5B,gBAAgB,EAAE,OAAO,CAAC,gBAAgB;YAC1C,2EAA2E;YAC3E,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;gBACpC,IAAI,EAAE,MAAM,CAAC,IAAI;aACpB,CAAC,CAAC;SACN,CAAA;QACD,OAAO,KAAK,CAAC,IAAI,CAAC;YACd,OAAO;YACP,GAAG,IAAI;SACV,EAAE;YACC,aAAa,EAAE,IAAI;YACnB,gBAAgB,EAAE,IAAI;SACzB,CAAC,CAAC,IAAI,CAAC,CAAC,GAAQ,EAAE,EAAE;YACjB,IAAI,KAAK,EAAE;gBACP,KAAK,CAAC,YAAY,EAAE,CAAA;gBACpB,KAAK,CAAC,SAAS,GAAG,SAAS,CAAA;aAC9B;YACD,OAAO,GAAG,CAAA;QACd,CAAC,CAAC,CAAA;IACN,CAAC;CACJ"}
package/lib/Gui/Gui.js DELETED
@@ -1,37 +0,0 @@
1
- import { EventEmitter } from '@rpgjs/common';
2
- export class Gui extends EventEmitter {
3
- constructor(id, player) {
4
- super();
5
- this.id = id;
6
- this.player = player;
7
- this._close = () => { };
8
- this._blockPlayerInput = false;
9
- }
10
- open(data, { waitingAction = false, blockPlayerInput = false } = {}) {
11
- return new Promise((resolve) => {
12
- this.player.moving = false;
13
- this.player.emit('gui.open', {
14
- guiId: this.id,
15
- data
16
- });
17
- this._blockPlayerInput = blockPlayerInput;
18
- if (blockPlayerInput) {
19
- this.player.canMove = false;
20
- }
21
- if (!waitingAction) {
22
- resolve(null);
23
- }
24
- else {
25
- this._close = resolve;
26
- }
27
- });
28
- }
29
- close(data) {
30
- this.player.emit('gui.exit', this.id);
31
- if (this._blockPlayerInput) {
32
- this.player.canMove = true;
33
- }
34
- this._close(data);
35
- }
36
- }
37
- //# sourceMappingURL=Gui.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Gui.js","sourceRoot":"","sources":["../../src/Gui/Gui.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAA;AAE5C,MAAM,OAAO,GAAI,SAAQ,YAAY;IAKjC,YACW,EAAU,EACP,MAAiB;QAE3B,KAAK,EAAE,CAAA;QAHA,OAAE,GAAF,EAAE,CAAQ;QACP,WAAM,GAAN,MAAM,CAAW;QALvB,WAAM,GAAa,GAAG,EAAE,GAAE,CAAC,CAAA;QAC3B,sBAAiB,GAAY,KAAK,CAAA;IAO1C,CAAC;IAED,IAAI,CAAC,IAAK,EAAE,EACR,aAAa,GAAG,KAAK,EACrB,gBAAgB,GAAG,KAAK,EAC3B,GAAG,EAAE;QACF,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;YAC3B,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,KAAK,CAAA;YAC1B,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,EAAE;gBACzB,KAAK,EAAE,IAAI,CAAC,EAAE;gBACd,IAAI;aACP,CAAC,CAAA;YACF,IAAI,CAAC,iBAAiB,GAAG,gBAAgB,CAAA;YACzC,IAAI,gBAAgB,EAAE;gBAClB,IAAI,CAAC,MAAM,CAAC,OAAO,GAAG,KAAK,CAAA;aAC9B;YACD,IAAI,CAAC,aAAa,EAAE;gBAChB,OAAO,CAAC,IAAI,CAAC,CAAA;aAChB;iBACI;gBACD,IAAI,CAAC,MAAM,GAAG,OAAO,CAAA;aACxB;QACL,CAAC,CAAC,CAAA;IACN,CAAC;IAED,KAAK,CAAC,IAAK;QACP,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,EAAE,CAAC,CAAA;QACrC,IAAI,IAAI,CAAC,iBAAiB,EAAE;YACxB,IAAI,CAAC,MAAM,CAAC,OAAO,GAAG,IAAI,CAAA;SAC7B;QACD,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;IACrB,CAAC;CACJ"}
@@ -1,23 +0,0 @@
1
- import { PrebuiltGui } from '@rpgjs/common';
2
- import { Gui } from './Gui.js';
3
- export class MenuGui extends Gui {
4
- constructor(player) {
5
- super(PrebuiltGui.MainMenu, player);
6
- }
7
- open() {
8
- this.on('useItem', (id) => {
9
- try {
10
- this.player.useItem(id);
11
- this.player.syncChanges();
12
- }
13
- catch (err) {
14
- this.player.showNotification(err.msg);
15
- }
16
- });
17
- return super.open('', {
18
- waitingAction: true,
19
- blockPlayerInput: true
20
- });
21
- }
22
- }
23
- //# sourceMappingURL=MenuGui.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"MenuGui.js","sourceRoot":"","sources":["../../src/Gui/MenuGui.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAC3C,OAAO,EAAE,GAAG,EAAE,MAAM,OAAO,CAAA;AAI3B,MAAM,OAAO,OAAQ,SAAQ,GAAG;IAC5B,YAAY,MAAiB;QACzB,KAAK,CAAC,WAAW,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAA;IACvC,CAAC;IAED,IAAI;QACA,IAAI,CAAC,EAAE,CAAC,SAAS,EAAE,CAAC,EAAE,EAAE,EAAE;YACtB,IAAI;gBACA,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,CAAA;gBACvB,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,CAAA;aAC5B;YACD,OAAO,GAAQ,EAAE;gBACb,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;aACxC;QACL,CAAC,CAAC,CAAA;QACF,OAAO,KAAK,CAAC,IAAI,CAAC,EAAE,EAAE;YAClB,aAAa,EAAE,IAAI;YACnB,gBAAgB,EAAE,IAAI;SACzB,CAAC,CAAA;IACN,CAAC;CACJ"}
@@ -1,8 +0,0 @@
1
- import { PrebuiltGui } from '@rpgjs/common';
2
- import { Gui } from './Gui.js';
3
- export class NotificationGui extends Gui {
4
- constructor(player) {
5
- super(PrebuiltGui.Notification, player);
6
- }
7
- }
8
- //# sourceMappingURL=NotificationGui.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"NotificationGui.js","sourceRoot":"","sources":["../../src/Gui/NotificationGui.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAC3C,OAAO,EAAE,GAAG,EAAE,MAAM,OAAO,CAAA;AAI3B,MAAM,OAAO,eAAgB,SAAQ,GAAG;IACpC,YAAY,MAAiB;QACzB,KAAK,CAAC,WAAW,CAAC,YAAY,EAAE,MAAM,CAAC,CAAA;IAC3C,CAAC;CACJ"}
@@ -1,40 +0,0 @@
1
- import { PrebuiltGui } from '@rpgjs/common';
2
- import { Gui } from './Gui.js';
3
- export class ShopGui extends Gui {
4
- constructor(player) {
5
- super(PrebuiltGui.Shop, player);
6
- }
7
- open(items) {
8
- items = items.map(item => {
9
- const it = new item();
10
- return {
11
- price: it.price,
12
- name: it.name,
13
- description: it.description,
14
- id: it.id,
15
- type: item.type
16
- };
17
- });
18
- this.on('buyItem', ({ id, nb }) => {
19
- try {
20
- this.player.buyItem(id, nb);
21
- }
22
- catch (err) {
23
- console.log(err);
24
- }
25
- });
26
- this.on('sellItem', ({ id, nb }) => {
27
- try {
28
- this.player.sellItem(id, nb);
29
- }
30
- catch (err) {
31
- console.log(err);
32
- }
33
- });
34
- return super.open({ items }, {
35
- waitingAction: true,
36
- blockPlayerInput: true
37
- });
38
- }
39
- }
40
- //# sourceMappingURL=ShopGui.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ShopGui.js","sourceRoot":"","sources":["../../src/Gui/ShopGui.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAC3C,OAAO,EAAE,GAAG,EAAE,MAAM,OAAO,CAAA;AAI3B,MAAM,OAAO,OAAQ,SAAQ,GAAG;IAC5B,YAAY,MAAiB;QACzB,KAAK,CAAC,WAAW,CAAC,IAAI,EAAE,MAAM,CAAC,CAAA;IACnC,CAAC;IAED,IAAI,CAAC,KAAY;QACb,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;YACrB,MAAM,EAAE,GAAG,IAAI,IAAI,EAAE,CAAA;YACrB,OAAO;gBACH,KAAK,EAAE,EAAE,CAAC,KAAK;gBACf,IAAI,EAAE,EAAE,CAAC,IAAI;gBACb,WAAW,EAAE,EAAE,CAAC,WAAW;gBAC3B,EAAE,EAAE,EAAE,CAAC,EAAE;gBACT,IAAI,EAAE,IAAI,CAAC,IAAI;aAClB,CAAA;QACL,CAAC,CAAC,CAAA;QACF,IAAI,CAAC,EAAE,CAAC,SAAS,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE;YAC9B,IAAI;gBACA,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,EAAE,EAAE,CAAC,CAAA;aAC9B;YACD,OAAO,GAAG,EAAE;gBACR,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;aACnB;QACL,CAAC,CAAC,CAAA;QACF,IAAI,CAAC,EAAE,CAAC,UAAU,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE;YAC/B,IAAI;gBACA,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,EAAE,EAAE,CAAC,CAAA;aAC/B;YACD,OAAO,GAAG,EAAE;gBACR,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;aACnB;QACL,CAAC,CAAC,CAAA;QACF,OAAO,KAAK,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,EAAE;YACzB,aAAa,EAAE,IAAI;YACnB,gBAAgB,EAAE,IAAI;SACzB,CAAC,CAAA;IACN,CAAC;CACJ"}