@rpgjs/server 4.3.0 → 5.0.0-alpha.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 (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 +32 -15
  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 +15 -37
  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 +36 -12
  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 -174
  55. package/LICENSE +0 -19
  56. package/browser/manifest.json +0 -7
  57. package/browser/rpg.server.js +0 -22379
  58. package/browser/rpg.server.umd.cjs +0 -22410
  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 -419
  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 -18
  164. package/lib/express/server.js +0 -70
  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 -500
  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 -94
  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,419 +0,0 @@
1
- import { RpgCommonMap, Utils } from '@rpgjs/common';
2
- import { TiledParserFile, TiledParser } from '@rpgjs/tiled';
3
- import { EventData } from '../decorators/event.js';
4
- import { RpgEvent } from '../Player/Player.js';
5
- import { Move } from '../Player/MoveManager.js';
6
- import path from 'path';
7
- import { World } from 'simple-room';
8
- import { EventManager, EventMode } from './EventManager.js';
9
- class AutoEvent extends RpgEvent {
10
- onInit() {
11
- const { graphic, direction, speed, frequency, move } = this.properties;
12
- if (graphic) {
13
- this.setGraphic(graphic);
14
- }
15
- if (direction) {
16
- this.changeDirection(direction);
17
- }
18
- if (speed) {
19
- this.speed = speed;
20
- }
21
- if (frequency) {
22
- this.frequency = frequency;
23
- }
24
- if (move == 'random') {
25
- this.infiniteMoveRoute([Move.tileRandom()]);
26
- }
27
- }
28
- async onAction(player) {
29
- const { text } = this.properties;
30
- if (text) {
31
- await player.showText(text, {
32
- talkWith: this
33
- });
34
- }
35
- }
36
- }
37
- AutoEvent.hitbox = {};
38
- export class RpgMap extends RpgCommonMap {
39
- constructor(_server) {
40
- super();
41
- this._server = _server;
42
- this.events = {};
43
- }
44
- // alias of users property in simple-room package
45
- /**
46
- * @title Players list
47
- * @prop { { [playerId: string]: RpgPlayer } } [players]
48
- * @readonly
49
- * @memberof Map
50
- */
51
- get players() {
52
- return this['users'];
53
- }
54
- /**
55
- * @title Number of players
56
- * @prop {number} [nbPlayers]
57
- * @readonly
58
- * @memberof Map
59
- */
60
- get nbPlayers() {
61
- return Object.keys(this.players).length;
62
- }
63
- $additionalEmitProperties(player) {
64
- const lastFramePositions = player['_lastFramePositions'];
65
- let pos;
66
- let lastFrame;
67
- if (lastFramePositions) {
68
- pos = lastFramePositions.position;
69
- lastFrame = lastFramePositions.frame;
70
- }
71
- const data = { frame: lastFrame, pos };
72
- return data;
73
- }
74
- async load() {
75
- if (RpgCommonMap.buffer.has(this.id)) {
76
- return;
77
- }
78
- const data = await this.parseTmx(this.file);
79
- super.load(data);
80
- this.getAllObjects().forEach(this.createShape.bind(this));
81
- this.loadProperties(data.properties);
82
- this._server.workers?.call('loadMap', {
83
- id: this.id,
84
- data
85
- });
86
- RpgCommonMap.buffer.set(this.id, this);
87
- this.loadCommonEvents(this._server.inputOptions.events);
88
- this.createDynamicEvent(this._events);
89
- if (this.onLoad)
90
- this.onLoad();
91
- }
92
- /**
93
- * Update the map with new data. Data can be a string (TMX content) or an object (parsed TMX content)
94
- * New Map data will be sent to all players on the map
95
- *
96
- * @title Update map
97
- * @method map.update(data)
98
- * @since 4.0.0
99
- * @returns {Promise<void>}
100
- * @param {object | string} data
101
- * @memberof Map
102
- */
103
- async update(data) {
104
- let objectData;
105
- // Data is XML (TMX content)
106
- if (typeof data == 'string') {
107
- objectData = await this.parseTmx(data, this.file);
108
- }
109
- else {
110
- objectData = data;
111
- }
112
- super.load(objectData);
113
- RpgCommonMap.buffer.set(this.id, this);
114
- this.clearShapes();
115
- this.getAllObjects().forEach(this.createShape.bind(this));
116
- for (let playerId in this.players) {
117
- const player = this.players[playerId];
118
- player.emitSceneMap();
119
- }
120
- }
121
- /**
122
- * Update tileset with new data. Data can be a string (TSX content) or an object (TiledTileset)
123
- * Cache will be removed for this tileset
124
- * New tileset data will be sent to all players on the map
125
- * Warning: tileset is not updated for all maps, only for the current map
126
- *
127
- * @title Update tileset
128
- * @method map.updateTileset(data)
129
- * @since 4.0.0
130
- * @returns {<void>}
131
- * @param {TiledTileset | string} data
132
- * @memberof Map
133
- */
134
- updateTileset(data) {
135
- let objectData;
136
- // Data is XML (TMX content)
137
- if (typeof data == 'string') {
138
- const parser = new TiledParser(data, this.file);
139
- objectData = parser.parseTileset();
140
- }
141
- else {
142
- objectData = data;
143
- }
144
- this.removeCacheTileset(objectData.name);
145
- this.update({
146
- ...this.data,
147
- tilesets: this.data.tilesets.map((tileset) => {
148
- if (tileset.name == objectData.name) {
149
- objectData.firstgid = tileset.firstgid;
150
- return objectData;
151
- }
152
- return tileset;
153
- })
154
- });
155
- }
156
- /**
157
- * Remove the map from the server. If there are still players on the map, an error will be thrown
158
- * Not delete the map file, only in memory
159
- *
160
- * @title Remove map
161
- * @method map.remove()
162
- * @since 4.0.0
163
- * @returns {void}
164
- * @throws {Error} If there are still players on the map
165
- * @memberof Map
166
- * */
167
- remove(ignorePlayers = false) {
168
- const players = Object.values(this.players);
169
- if (players.length > 0 && !ignorePlayers) {
170
- throw new Error(`Cannot remove map ${this.id} because there are still players on it`);
171
- }
172
- for (let eventId in this.events) {
173
- this.removeEvent(eventId);
174
- }
175
- RpgCommonMap.buffer.delete(this.id);
176
- World.removeRoom(this.id);
177
- }
178
- async parseTmx(file, relativePath = '') {
179
- // @ts-ignore
180
- const hasAssetsPath = !!this._server.envs.VITE_BUILT;
181
- const parser = new TiledParserFile(file, {
182
- basePath: process.env.NODE_ENV == 'test' ? '.' : '',
183
- staticDir: hasAssetsPath ? path.join(this._server.inputOptions.basePath, this._server.assetsPath) : '',
184
- relativePath
185
- });
186
- const data = await parser.parseFilePromise({
187
- getOnlyBasename: hasAssetsPath
188
- });
189
- return data;
190
- }
191
- loadProperties(properties) {
192
- for (let key in properties) {
193
- this[key] = properties[key];
194
- }
195
- }
196
- get game() {
197
- return this._server.gameEngine;
198
- }
199
- // Hook: called by simple-room package
200
- onLeave(player) {
201
- this.removeObject(player);
202
- }
203
- /**
204
- * Loads common events onto the game map.
205
- *
206
- * @private
207
- * @param {RpgClassEvent<RpgEvent>[]} commonEvents - An array of common events to load.
208
- * @param {RpgPlayer} [player] - The player instance on which to create the dynamic events. If not provided, the function will use the current instance.
209
- * @returns {void}
210
- */
211
- // @internal
212
- loadCommonEvents(commonEvents, player) {
213
- let events = [];
214
- this.getShapes().forEach(shape => {
215
- const findEvent = commonEvents.find(event => event._name == shape.name);
216
- if (!findEvent)
217
- return;
218
- const { x, y, } = shape.hitbox;
219
- events.push({
220
- x,
221
- y,
222
- event: findEvent
223
- });
224
- });
225
- if (player) {
226
- player.createDynamicEvent(events, false);
227
- }
228
- else {
229
- this.createDynamicEvent(events);
230
- }
231
- }
232
- // TODO
233
- autoLoadEvent() {
234
- this.getShapes().forEach(shape => {
235
- const { properties } = shape;
236
- const { x, y, pos, w, h } = shape.hitbox;
237
- if (shape.isEvent() && !this.events[shape.name]) {
238
- const mode = properties.mode || EventMode.Shared;
239
- AutoEvent.prototype['_name'] = shape.name;
240
- AutoEvent.mode = mode;
241
- AutoEvent.hitbox = {
242
- width: 32,
243
- height: 16
244
- };
245
- const event = this.createEvent({
246
- x,
247
- y,
248
- event: AutoEvent
249
- }, mode, shape);
250
- if (event)
251
- this.events[shape.name] = event;
252
- }
253
- });
254
- }
255
- /**
256
- * Edit a tile on the map. All players on the map will see the modified tile
257
- *
258
- *
259
- * @title Change Tile in map
260
- * @since 3.0.0-beta.4
261
- * @method map.setTile(x,y,layer,tileInfo)
262
- * @param {number} x Position X
263
- * @param {number} y Position Y
264
- * @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
265
- * @param {object} tileInfo Object with the following properties:
266
- * - {number} gid: The tile number in tileset (from 1)
267
- * - {object} properties Property of the tile. You own object. To set a collision, set the `collision:true` property
268
- * @example
269
- * ```ts
270
- * map.setTile(15, 18, 'mylayer', { gid: 2 })
271
- * ```
272
- * @returns {void}
273
- * @memberof Map
274
- */
275
- setTile(x, y, layerFilter, tileInfo) {
276
- const tiles = super.setTile(x, y, layerFilter, tileInfo);
277
- const players = Object.values(this['users']);
278
- for (let player of players) {
279
- player.emit('changeTile', tiles);
280
- }
281
- return tiles;
282
- }
283
- getEventShape(eventName) {
284
- return this.getShapes().find(shape => shape.name == eventName);
285
- }
286
- /**
287
- * Dynamically create an event in Shared mode
288
- *
289
- * ```ts
290
- * @EventData({
291
- * name: 'EV-1'
292
- * })
293
- * class MyEvent extends RpgEvent {
294
- * onAction() {
295
- * console.log('ok')
296
- * }
297
- * }
298
- *
299
- * map.createDynamicEvent({
300
- * x: 100,
301
- * y: 100,
302
- * event: MyEvent
303
- * })
304
- * ```
305
- *
306
- * You can also put an array of objects to create several events at once
307
- *
308
- * @title Create Dynamic Event
309
- * @since 3.0.0-beta.4
310
- * @method map.createDynamicEvent(eventObj|eventObj[])
311
- * @param { { x: number, y: number, z?: number, event: eventClass } } eventsList
312
- * @returns { { [eventId: string]: RpgEvent } }
313
- * @memberof Map
314
- */
315
- createDynamicEvent(eventsList) {
316
- if (!eventsList)
317
- return {};
318
- if (!Utils.isArray(eventsList)) {
319
- eventsList = [eventsList];
320
- }
321
- const events = this.createEvents(eventsList, EventMode.Shared);
322
- let ret = {};
323
- for (let key in events) {
324
- this.events[key] = events[key];
325
- this.events[key].updateInVirtualGrid();
326
- this.events[key].execMethod('onInit');
327
- // force to get Proxy object to sync with client
328
- ret = { ...ret, [key]: this.events[key] };
329
- }
330
- return ret;
331
- }
332
- createEvent(obj, mode, shape) {
333
- let event, position;
334
- // We retrieve the information of the event ([Event] or [{event: Event, x: number, y: number}])
335
- if (obj.x === undefined) {
336
- event = obj;
337
- }
338
- else {
339
- event = obj.event;
340
- position = { x: obj.x, y: obj.y, z: obj.z ?? 0 };
341
- }
342
- if ('$decorator' in event) {
343
- const options = event.$decorator;
344
- EventData(options)(event);
345
- }
346
- // The event is ignored if the mode is different.
347
- if (event.mode != mode) {
348
- return null;
349
- }
350
- // Create an instance of RpgEvent and assign its options
351
- const ev = this.game.addEvent(event);
352
- const _shape = shape || this.getEventShape(ev.name);
353
- ev.map = this.id;
354
- ev.width = event.width || this.tileWidth;
355
- ev.height = event.height || this.tileHeight;
356
- if (_shape && _shape.properties)
357
- ev.properties = _shape.properties;
358
- if (event.hitbox)
359
- ev.setHitbox(event.hitbox.width, event.hitbox.height);
360
- ev.teleport(position || ev.name);
361
- return ev;
362
- }
363
- createEvents(eventsList, mode) {
364
- const events = {};
365
- if (!eventsList)
366
- return events;
367
- for (let obj of eventsList) {
368
- const ev = this.createEvent(obj, mode);
369
- if (ev) {
370
- events[ev.id] = ev;
371
- }
372
- }
373
- return events;
374
- }
375
- /**
376
- * Allows to create a temporary hitbox on the map that can have a movement
377
- 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
378
- * @title Create a temporary and moving hitbox
379
- * @since 3.2.0
380
- * @method map.createMovingHitbox(hitboxes,options)
381
- * @param {Array<{ width: number, height: number, x: number, y: number }>} hitboxes Create several hitboxes that will give an effect of movement
382
- * @param {object} [options]
383
- * @param {speed} [options.speed=1] speed of movement (in frames)
384
- * @returns {Observable<AbstractObject>} You find the methods of position and movement of an event
385
- * @memberof Map
386
- * @example
387
- *
388
- * ```ts
389
- * // Two hitboxes that will be done very quickly
390
- * map.createMovingHitbox(
391
- * [
392
- * { x: 0, y: 0, width: 100, height: 100 },
393
- * { x: 20, y: 0, width: 100, height: 100 }
394
- * ]
395
- * ).subscribe({
396
- * next(hitbox) {
397
- * console.log(hitbox.otherPlayersCollision)
398
- * },
399
- * complete() {
400
- * console.log('finish')
401
- * }
402
- * })
403
- * ```
404
- */
405
- createMovingHitbox(hitboxes, options = {}) {
406
- return this._createMovingHitbox(this.game, this._server.tick, this.id, hitboxes, options);
407
- }
408
- setSync(schema) {
409
- return this.$setSchema(schema);
410
- }
411
- // Reflects itself. Just for compatibility with the EventManager class
412
- getCurrentMap() {
413
- return this;
414
- }
415
- }
416
- Utils.applyMixins(RpgMap, [
417
- EventManager
418
- ]);
419
- //# sourceMappingURL=Map.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Map.js","sourceRoot":"","sources":["../../src/Game/Map.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,KAAK,EAA2C,MAAM,eAAe,CAAA;AAC5F,OAAO,EAAE,eAAe,EAAE,WAAW,EAAgB,MAAM,cAAc,CAAA;AACzE,OAAO,EAAE,SAAS,EAAgB,MAAM,qBAAqB,CAAA;AAC7D,OAAO,EAAa,QAAQ,EAAiB,MAAM,kBAAkB,CAAA;AACrE,OAAO,EAAE,IAAI,EAAE,MAAM,uBAAuB,CAAA;AAG5C,OAAO,IAAI,MAAM,MAAM,CAAA;AAEvB,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAA;AACnC,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAkBxD,MAAM,SAAU,SAAQ,QAAQ;IAI5B,MAAM;QACF,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC,UAAU,CAAA;QACtE,IAAI,OAAO,EAAE;YACT,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAA;SAC3B;QACD,IAAI,SAAS,EAAE;YACX,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,CAAA;SAClC;QACD,IAAI,KAAK,EAAE;YACP,IAAI,CAAC,KAAK,GAAG,KAAK,CAAA;SACrB;QACD,IAAI,SAAS,EAAE;YACX,IAAI,CAAC,SAAS,GAAG,SAAS,CAAA;SAC7B;QACD,IAAI,IAAI,IAAI,QAAQ,EAAE;YAClB,IAAI,CAAC,iBAAiB,CAAC,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC,CAAA;SAC9C;IACL,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,MAAiB;QAC5B,MAAM,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC,UAAU,CAAA;QAChC,IAAI,IAAI,EAAE;YACN,MAAM,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE;gBACxB,QAAQ,EAAE,IAAI;aACjB,CAAC,CAAA;SACL;IACL,CAAC;;AA5BM,gBAAM,GAAQ,EAAE,CAAA;AA+B3B,MAAM,OAAO,MAAO,SAAQ,YAAY;IAKpC,YAAoB,OAAwB;QACxC,KAAK,EAAE,CAAA;QADS,YAAO,GAAP,OAAO,CAAiB;QAExC,IAAI,CAAC,MAAM,GAAG,EAAE,CAAA;IACpB,CAAC;IAED,iDAAiD;IACjD;;;;;OAKG;IACH,IAAI,OAAO;QACP,OAAO,IAAI,CAAC,OAAO,CAAC,CAAA;IACxB,CAAC;IAED;;;;;OAKG;IACH,IAAI,SAAS;QACT,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,MAAM,CAAA;IAC3C,CAAC;IAED,yBAAyB,CAAC,MAAiB;QACvC,MAAM,kBAAkB,GAGR,MAAM,CAAC,qBAAqB,CAAC,CAAA;QAC7C,IAAI,GAAG,CAAA;QACP,IAAI,SAAS,CAAA;QACb,IAAI,kBAAkB,EAAE;YACpB,GAAG,GAAG,kBAAkB,CAAC,QAAQ,CAAA;YACjC,SAAS,GAAG,kBAAkB,CAAC,KAAK,CAAA;SACvC;QACD,MAAM,IAAI,GAAG,EAAE,KAAK,EAAE,SAAS,EAAE,GAAG,EAAE,CAAA;QACtC,OAAO,IAAI,CAAA;IACf,CAAC;IAED,KAAK,CAAC,IAAI;QACN,IAAI,YAAY,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE;YAClC,OAAM;SACT;QACD,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QAC3C,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QAChB,IAAI,CAAC,aAAa,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAA;QACzD,IAAI,CAAC,cAAc,CAAE,IAAY,CAAC,UAAU,CAAC,CAAA;QAC7C,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,SAAS,EAAE;YAClC,EAAE,EAAE,IAAI,CAAC,EAAE;YACX,IAAI;SACP,CAAC,CAAA;QACF,YAAY,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,CAAA;QACtC,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,MAAM,CAAC,CAAA;QACvD,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,OAA2B,CAAC,CAAA;QACzD,IAAI,IAAI,CAAC,MAAM;YAAE,IAAI,CAAC,MAAM,EAAE,CAAA;IAClC,CAAC;IAED;;;;;;;;;;OAUG;IACH,KAAK,CAAC,MAAM,CAAC,IAAqB;QAC9B,IAAI,UAAU,CAAA;QACd,4BAA4B;QAC5B,IAAI,OAAO,IAAI,IAAI,QAAQ,EAAE;YACzB,UAAU,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,CAAA;SACpD;aACI;YACD,UAAU,GAAG,IAAI,CAAA;SACpB;QACD,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;QACtB,YAAY,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,CAAA;QACtC,IAAI,CAAC,WAAW,EAAE,CAAA;QAClB,IAAI,CAAC,aAAa,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAA;QACzD,KAAK,IAAI,QAAQ,IAAI,IAAI,CAAC,OAAO,EAAE;YAC/B,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAA;YACrC,MAAM,CAAC,YAAY,EAAE,CAAA;SACxB;IACL,CAAC;IAED;;;;;;;;;;;;OAYG;IACH,aAAa,CAAC,IAA2B;QACrC,IAAI,UAAwB,CAAA;QAC5B,4BAA4B;QAC5B,IAAI,OAAO,IAAI,IAAI,QAAQ,EAAE;YACzB,MAAM,MAAM,GAAG,IAAI,WAAW,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,CAAA;YAC/C,UAAU,GAAG,MAAM,CAAC,YAAY,EAAE,CAAA;SACrC;aACI;YACD,UAAU,GAAG,IAAI,CAAA;SACpB;QACD,IAAI,CAAC,kBAAkB,CAAC,UAAU,CAAC,IAAI,CAAC,CAAA;QACxC,IAAI,CAAC,MAAM,CAAC;YACR,GAAG,IAAI,CAAC,IAAI;YACZ,QAAQ,EAAE,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAY,EAAE,EAAE;gBAC9C,IAAI,OAAO,CAAC,IAAI,IAAI,UAAU,CAAC,IAAI,EAAE;oBACjC,UAAU,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAA;oBACtC,OAAO,UAAU,CAAA;iBACpB;gBACD,OAAO,OAAO,CAAA;YAClB,CAAC,CAAC;SACL,CAAC,CAAA;IACN,CAAC;IAED;;;;;;;;;;SAUK;IACL,MAAM,CAAC,aAAa,GAAG,KAAK;QACxB,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;QAC3C,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,aAAa,EAAE;YACtC,MAAM,IAAI,KAAK,CAAC,qBAAqB,IAAI,CAAC,EAAE,wCAAwC,CAAC,CAAA;SACxF;QACD,KAAK,IAAI,OAAO,IAAI,IAAI,CAAC,MAAM,EAAE;YAC7B,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAA;SAC5B;QACD,YAAY,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;QACnC,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;IAC7B,CAAC;IAEO,KAAK,CAAC,QAAQ,CAAC,IAAY,EAAE,eAAuB,EAAE;QAC1D,aAAa;QACb,MAAM,aAAa,GAAG,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAA;QACpD,MAAM,MAAM,GAAG,IAAI,eAAe,CAC9B,IAAI,EACJ;YACI,QAAQ,EAAE,OAAO,CAAC,GAAG,CAAC,QAAQ,IAAI,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE;YACnD,SAAS,EAAE,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,QAAQ,EAAE,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,EAAE;YACtG,YAAY;SACf,CACJ,CAAA;QACD,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,gBAAgB,CAAC;YACvC,eAAe,EAAE,aAAa;SACjC,CAAC,CAAA;QAEF,OAAO,IAAI,CAAA;IACf,CAAC;IAEO,cAAc,CAAC,UAEtB;QACG,KAAK,IAAI,GAAG,IAAI,UAAU,EAAE;YACxB,IAAI,CAAC,GAAG,CAAC,GAAG,UAAU,CAAC,GAAG,CAAC,CAAA;SAC9B;IACL,CAAC;IAED,IAAI,IAAI;QACJ,OAAO,IAAI,CAAC,OAAO,CAAC,UAAU,CAAA;IAClC,CAAC;IAED,sCAAsC;IACtC,OAAO,CAAC,MAAiB;QACrB,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAA;IAC7B,CAAC;IAED;;;;;;;OAOG;IACH,YAAY;IACZ,gBAAgB,CAAC,YAAuC,EAAE,MAAkB;QACxE,IAAI,MAAM,GAAqB,EAAE,CAAA;QACjC,IAAI,CAAC,SAAS,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;YAC7B,MAAM,SAAS,GAAG,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,KAAK,IAAI,KAAK,CAAC,IAAI,CAAC,CAAA;YACvE,IAAI,CAAC,SAAS;gBAAE,OAAM;YACtB,MAAM,EAAE,CAAC,EAAE,CAAC,GAAG,GAAG,KAAK,CAAC,MAAM,CAAA;YAC9B,MAAM,CAAC,IAAI,CAAC;gBACR,CAAC;gBACD,CAAC;gBACD,KAAK,EAAE,SAAS;aACnB,CAAC,CAAA;QACN,CAAC,CAAC,CAAC;QACH,IAAI,MAAM,EAAE;YACR,MAAM,CAAC,kBAAkB,CAAC,MAAM,EAAE,KAAK,CAAC,CAAA;SAC3C;aACI;YACD,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAA;SAClC;IAEL,CAAC;IAED,OAAO;IACP,aAAa;QACT,IAAI,CAAC,SAAS,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;YAC7B,MAAM,EAAE,UAAU,EAAE,GAAG,KAAK,CAAA;YAC5B,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,KAAK,CAAC,MAAM,CAAA;YACxC,IAAI,KAAK,CAAC,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE;gBAC7C,MAAM,IAAI,GAAG,UAAU,CAAC,IAAI,IAAI,SAAS,CAAC,MAAM,CAAA;gBAChD,SAAS,CAAC,SAAS,CAAC,OAAO,CAAC,GAAG,KAAK,CAAC,IAAI,CAAA;gBACzC,SAAS,CAAC,IAAI,GAAG,IAAI,CAAA;gBACrB,SAAS,CAAC,MAAM,GAAG;oBACf,KAAK,EAAE,EAAE;oBACT,MAAM,EAAE,EAAE;iBACb,CAAA;gBACD,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC;oBAC3B,CAAC;oBACD,CAAC;oBACD,KAAK,EAAE,SAAS;iBACnB,EAAE,IAAI,EAAE,KAAK,CAAC,CAAA;gBACf,IAAI,KAAK;oBAAE,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,KAAK,CAAA;aAC7C;QACL,CAAC,CAAC,CAAA;IACN,CAAC;IAED;;;;;;;;;;;;;;;;;;;OAmBG;IACH,OAAO,CAAC,CAAS,EAAE,CAAS,EAAE,WAA+C,EAAE,QAG9E;QACG,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,WAAW,EAAE,QAAQ,CAAC,CAAA;QACxD,MAAM,OAAO,GAAgB,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAA;QACzD,KAAK,IAAI,MAAM,IAAI,OAAO,EAAE;YACxB,MAAM,CAAC,IAAI,CAAC,YAAY,EAAE,KAAK,CAAC,CAAA;SACnC;QACD,OAAO,KAAK,CAAA;IAChB,CAAC;IAED,aAAa,CAAC,SAAiB;QAC3B,OAAO,IAAI,CAAC,SAAS,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,IAAI,SAAS,CAAC,CAAA;IAClE,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA4BG;IACH,kBAAkB,CAAC,UAA6C;QAG5D,IAAI,CAAC,UAAU;YAAE,OAAO,EAAE,CAAA;QAC1B,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE;YAC5B,UAAU,GAAG,CAAC,UAA4B,CAAC,CAAA;SAC9C;QACD,MAAM,MAAM,GAAG,IAAI,CAAC,YAAY,CAAC,UAA8B,EAAE,SAAS,CAAC,MAAM,CAAC,CAAA;QAClF,IAAI,GAAG,GAAG,EAAE,CAAA;QACZ,KAAK,IAAI,GAAG,IAAI,MAAM,EAAE;YACpB,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,GAAG,CAAQ,CAAA;YACrC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,mBAAmB,EAAE,CAAA;YACtC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAA;YACrC,gDAAgD;YAChD,GAAG,GAAG,EAAE,GAAG,GAAG,EAAE,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAA;SAC5C;QACD,OAAO,GAAG,CAAA;IACd,CAAC;IAED,WAAW,CAAC,GAAmB,EAAE,IAAe,EAAE,KAAgB;QAC9D,IAAI,KAAU,EAAE,QAA8B,CAAA;QAE9C,+FAA+F;QAC/F,IAAI,GAAG,CAAC,CAAC,KAAK,SAAS,EAAE;YACrB,KAAK,GAAG,GAAG,CAAA;SACd;aACI;YACD,KAAK,GAAG,GAAG,CAAC,KAAK,CAAA;YACjB,QAAQ,GAAG,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,CAAA;SACnD;QAED,IAAI,YAAY,IAAI,KAAK,EAAE;YACvB,MAAM,OAAO,GAAG,KAAK,CAAC,UAAU,CAAA;YAChC,SAAS,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,CAAA;SAC5B;QAED,iDAAiD;QACjD,IAAI,KAAK,CAAC,IAAI,IAAI,IAAI,EAAE;YACpB,OAAO,IAAI,CAAA;SACd;QAED,wDAAwD;QACxD,MAAM,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAW,KAAK,CAAC,CAAA;QAC9C,MAAM,MAAM,GAAG,KAAK,IAAI,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC,IAAI,CAAC,CAAA;QACnD,EAAE,CAAC,GAAG,GAAG,IAAI,CAAC,EAAE,CAAA;QAChB,EAAE,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK,IAAI,IAAI,CAAC,SAAS,CAAA;QACxC,EAAE,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,IAAI,IAAI,CAAC,UAAU,CAAA;QAC3C,IAAI,MAAM,IAAI,MAAM,CAAC,UAAU;YAAE,EAAE,CAAC,UAAU,GAAG,MAAM,CAAC,UAAU,CAAA;QAClE,IAAI,KAAK,CAAC,MAAM;YAAE,EAAE,CAAC,SAAS,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;QACvE,EAAE,CAAC,QAAQ,CAAC,QAAQ,IAAI,EAAE,CAAC,IAAI,CAAC,CAAA;QAChC,OAAO,EAAE,CAAA;IACb,CAAC;IAED,YAAY,CAAC,UAAyB,EAAE,IAAe;QACnD,MAAM,MAAM,GAAG,EAAE,CAAA;QAEjB,IAAI,CAAC,UAAU;YAAE,OAAO,MAAM,CAAA;QAE9B,KAAK,IAAI,GAAG,IAAI,UAAU,EAAE;YACxB,MAAM,EAAE,GAAG,IAAI,CAAC,WAAW,CAAC,GAAqB,EAAE,IAAI,CAAC,CAAA;YACxD,IAAI,EAAE,EAAE;gBACJ,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,EAAE,CAAA;aACrB;SACJ;QAED,OAAO,MAAM,CAAA;IACjB,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA6BG;IACH,kBAAkB,CACd,QAAwD,EACxD,UAAwB,EAAE;QAC1B,OAAO,IAAI,CAAC,mBAAmB,CAC3B,IAAI,CAAC,IAAI,EACT,IAAI,CAAC,OAAO,CAAC,IAAW,EACxB,IAAI,CAAC,EAAE,EACP,QAAQ,EACR,OAAO,CAAQ,CAAA;IACvB,CAAC;IAED,OAAO,CAAC,MAAW;QACf,OAAO,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAA;IAClC,CAAC;IAED,sEAAsE;IACtE,aAAa;QACT,OAAO,IAAI,CAAA;IACf,CAAC;CACJ;AAaD,KAAK,CAAC,WAAW,CAAC,MAAM,EAAE;IACtB,YAAY;CACf,CAAC,CAAA"}
@@ -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