@rpgjs/server 4.0.0-beta.9 → 4.0.0-rc.10

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 (77) hide show
  1. package/CHANGELOG.md +32 -0
  2. package/lib/Game/EventManager.d.ts +53 -0
  3. package/lib/Game/EventManager.js +93 -0
  4. package/lib/Game/EventManager.js.map +1 -0
  5. package/lib/Game/Map.d.ts +6 -30
  6. package/lib/Game/Map.js +26 -61
  7. package/lib/Game/Map.js.map +1 -1
  8. package/lib/Gui/MenuGui.js +2 -2
  9. package/lib/Gui/MenuGui.js.map +1 -1
  10. package/lib/Player/BattleManager.d.ts +5 -5
  11. package/lib/Player/BattleManager.js +8 -7
  12. package/lib/Player/BattleManager.js.map +1 -1
  13. package/lib/Player/ClassManager.d.ts +11 -4
  14. package/lib/Player/ClassManager.js +7 -3
  15. package/lib/Player/ClassManager.js.map +1 -1
  16. package/lib/Player/EffectManager.d.ts +2 -2
  17. package/lib/Player/EffectManager.js +6 -6
  18. package/lib/Player/EffectManager.js.map +1 -1
  19. package/lib/Player/ElementManager.d.ts +4 -1
  20. package/lib/Player/ElementManager.js.map +1 -1
  21. package/lib/Player/ItemManager.d.ts +21 -0
  22. package/lib/Player/ItemManager.js +22 -1
  23. package/lib/Player/ItemManager.js.map +1 -1
  24. package/lib/Player/MoveManager.js +27 -14
  25. package/lib/Player/MoveManager.js.map +1 -1
  26. package/lib/Player/ParameterManager.d.ts +2 -1
  27. package/lib/Player/ParameterManager.js +15 -4
  28. package/lib/Player/ParameterManager.js.map +1 -1
  29. package/lib/Player/Player.d.ts +150 -54
  30. package/lib/Player/Player.js +142 -58
  31. package/lib/Player/Player.js.map +1 -1
  32. package/lib/Player/SkillManager.d.ts +13 -8
  33. package/lib/Player/SkillManager.js +14 -12
  34. package/lib/Player/SkillManager.js.map +1 -1
  35. package/lib/Player/StateManager.d.ts +11 -6
  36. package/lib/Player/StateManager.js +21 -6
  37. package/lib/Player/StateManager.js.map +1 -1
  38. package/lib/RpgServer.d.ts +42 -2
  39. package/lib/Scenes/Map.d.ts +3 -0
  40. package/lib/Scenes/Map.js +4 -0
  41. package/lib/Scenes/Map.js.map +1 -1
  42. package/lib/decorators/event.d.ts +1 -1
  43. package/lib/decorators/event.js +2 -1
  44. package/lib/decorators/event.js.map +1 -1
  45. package/lib/decorators/map.d.ts +5 -2
  46. package/lib/decorators/map.js.map +1 -1
  47. package/lib/express/server.js +5 -1
  48. package/lib/express/server.js.map +1 -1
  49. package/lib/index.d.ts +3 -1
  50. package/lib/index.js +3 -1
  51. package/lib/index.js.map +1 -1
  52. package/lib/models/Item.d.ts +1 -1
  53. package/lib/server.d.ts +3 -6
  54. package/lib/server.js +9 -8
  55. package/lib/server.js.map +1 -1
  56. package/package.json +8 -7
  57. package/src/Game/EventManager.ts +110 -0
  58. package/src/Game/Map.ts +37 -69
  59. package/src/Gui/MenuGui.ts +3 -3
  60. package/src/Player/BattleManager.ts +10 -9
  61. package/src/Player/ClassManager.ts +13 -7
  62. package/src/Player/EffectManager.ts +6 -5
  63. package/src/Player/ElementManager.ts +4 -1
  64. package/src/Player/ItemManager.ts +47 -26
  65. package/src/Player/MoveManager.ts +35 -15
  66. package/src/Player/ParameterManager.ts +19 -8
  67. package/src/Player/Player.ts +170 -57
  68. package/src/Player/SkillManager.ts +23 -21
  69. package/src/Player/StateManager.ts +30 -11
  70. package/src/RpgServer.ts +42 -2
  71. package/src/Scenes/Map.ts +4 -0
  72. package/src/decorators/event.ts +2 -1
  73. package/src/decorators/map.ts +5 -2
  74. package/src/express/server.ts +9 -3
  75. package/src/index.ts +10 -8
  76. package/src/models/Item.ts +1 -1
  77. package/src/server.ts +11 -8
@@ -1,4 +1,5 @@
1
1
  import { RpgCommonPlayer, RpgCommonGame } from '@rpgjs/common';
2
+ import { WorldClass } from 'simple-room';
2
3
  import { RpgMap, EventPosOption } from '../Game/Map';
3
4
  import { ItemManager } from './ItemManager';
4
5
  import { GoldManager } from './GoldManager';
@@ -12,8 +13,10 @@ import { GuiManager } from './GuiManager';
12
13
  import { VariableManager } from './VariableManager';
13
14
  import { MoveManager } from './MoveManager';
14
15
  import { BattleManager } from './BattleManager';
16
+ import { RpgServerEngine } from '../server';
15
17
  import { CameraOptions, PositionXY_OptionalZ, LayoutObject } from '@rpgjs/types';
16
18
  import { ComponentManager } from './ComponentManager';
19
+ import { EventManager, EventMode } from '../Game/EventManager';
17
20
  export interface Position {
18
21
  x: number;
19
22
  y: number;
@@ -50,45 +53,82 @@ export declare class RpgPlayer extends RpgCommonPlayer {
50
53
  teleported: {
51
54
  $permanent: boolean;
52
55
  };
56
+ deleted: {
57
+ $permanent: boolean;
58
+ };
53
59
  param: ObjectConstructor;
54
60
  hp: NumberConstructor;
55
61
  sp: NumberConstructor;
56
62
  gold: NumberConstructor;
57
- level: NumberConstructor;
63
+ level: {
64
+ $effects: string[];
65
+ };
66
+ expForNextlevel: {
67
+ $permanent: boolean;
68
+ };
58
69
  exp: NumberConstructor;
59
70
  name: StringConstructor;
60
- expForNextlevel: NumberConstructor;
61
71
  items: {
62
72
  nb: NumberConstructor;
63
73
  item: {
64
- name: StringConstructor;
65
- description: StringConstructor;
66
- price: NumberConstructor;
67
- consumable: BooleanConstructor;
74
+ name: {
75
+ $permanent: boolean;
76
+ };
77
+ description: {
78
+ $permanent: boolean;
79
+ };
68
80
  id: StringConstructor;
81
+ price: {
82
+ $permanent: boolean;
83
+ };
84
+ consumable: {
85
+ $permanent: boolean;
86
+ };
69
87
  };
70
88
  }[];
71
89
  _class: {
72
- name: StringConstructor;
73
- description: StringConstructor;
90
+ name: {
91
+ $permanent: boolean;
92
+ };
93
+ description: {
94
+ $permanent: boolean;
95
+ };
74
96
  id: StringConstructor;
75
97
  };
76
98
  equipments: {
77
- name: StringConstructor;
78
- description: StringConstructor;
79
- price: NumberConstructor;
80
- consumable: BooleanConstructor;
99
+ name: {
100
+ $permanent: boolean;
101
+ };
102
+ description: {
103
+ $permanent: boolean;
104
+ };
81
105
  id: StringConstructor;
106
+ price: {
107
+ $permanent: boolean;
108
+ };
109
+ consumable: {
110
+ $permanent: boolean;
111
+ };
82
112
  }[];
83
113
  skills: {
84
- name: StringConstructor;
85
- description: StringConstructor;
86
- spCost: NumberConstructor;
114
+ name: {
115
+ $permanent: boolean;
116
+ };
117
+ description: {
118
+ $permanent: boolean;
119
+ };
87
120
  id: StringConstructor;
121
+ spCost: {
122
+ $permanent: boolean;
123
+ };
88
124
  }[];
89
125
  states: {
90
- name: StringConstructor;
91
- description: StringConstructor;
126
+ name: {
127
+ $permanent: boolean;
128
+ };
129
+ description: {
130
+ $permanent: boolean;
131
+ };
92
132
  id: StringConstructor;
93
133
  }[];
94
134
  effects: StringConstructor[];
@@ -202,45 +242,82 @@ export declare class RpgPlayer extends RpgCommonPlayer {
202
242
  teleported: {
203
243
  $permanent: boolean;
204
244
  };
245
+ deleted: {
246
+ $permanent: boolean;
247
+ };
205
248
  param: ObjectConstructor;
206
249
  hp: NumberConstructor;
207
250
  sp: NumberConstructor;
208
251
  gold: NumberConstructor;
209
- level: NumberConstructor;
252
+ level: {
253
+ $effects: string[];
254
+ };
255
+ expForNextlevel: {
256
+ $permanent: boolean;
257
+ };
210
258
  exp: NumberConstructor;
211
259
  name: StringConstructor;
212
- expForNextlevel: NumberConstructor;
213
260
  items: {
214
261
  nb: NumberConstructor;
215
262
  item: {
216
- name: StringConstructor;
217
- description: StringConstructor;
218
- price: NumberConstructor;
219
- consumable: BooleanConstructor;
263
+ name: {
264
+ $permanent: boolean;
265
+ };
266
+ description: {
267
+ $permanent: boolean;
268
+ };
220
269
  id: StringConstructor;
270
+ price: {
271
+ $permanent: boolean;
272
+ };
273
+ consumable: {
274
+ $permanent: boolean;
275
+ };
221
276
  };
222
277
  }[];
223
278
  _class: {
224
- name: StringConstructor;
225
- description: StringConstructor;
279
+ name: {
280
+ $permanent: boolean;
281
+ };
282
+ description: {
283
+ $permanent: boolean;
284
+ };
226
285
  id: StringConstructor;
227
286
  };
228
287
  equipments: {
229
- name: StringConstructor;
230
- description: StringConstructor;
231
- price: NumberConstructor;
232
- consumable: BooleanConstructor;
288
+ name: {
289
+ $permanent: boolean;
290
+ };
291
+ description: {
292
+ $permanent: boolean;
293
+ };
233
294
  id: StringConstructor;
295
+ price: {
296
+ $permanent: boolean;
297
+ };
298
+ consumable: {
299
+ $permanent: boolean;
300
+ };
234
301
  }[];
235
302
  skills: {
236
- name: StringConstructor;
237
- description: StringConstructor;
238
- spCost: NumberConstructor;
303
+ name: {
304
+ $permanent: boolean;
305
+ };
306
+ description: {
307
+ $permanent: boolean;
308
+ };
239
309
  id: StringConstructor;
310
+ spCost: {
311
+ $permanent: boolean;
312
+ };
240
313
  }[];
241
314
  states: {
242
- name: StringConstructor;
243
- description: StringConstructor;
315
+ name: {
316
+ $permanent: boolean;
317
+ };
318
+ description: {
319
+ $permanent: boolean;
320
+ };
244
321
  id: StringConstructor;
245
322
  }[];
246
323
  effects: StringConstructor[];
@@ -352,16 +429,28 @@ export declare class RpgPlayer extends RpgCommonPlayer {
352
429
  _rooms: never[];
353
430
  session: string | null;
354
431
  prevMap: string;
432
+ /**
433
+ * ```ts
434
+ * retreive the server instance
435
+ * ```
436
+ * @title Server Instance
437
+ * @prop {RpgServerEngine} player.server
438
+ * @memberof Player
439
+ * */
440
+ server: RpgServerEngine;
355
441
  private touchSide;
356
442
  otherPossessedPlayer: RpgPlayer | RpgEvent | null;
357
443
  following: RpgPlayer | RpgEvent | null;
444
+ private _dataLoading;
358
445
  _lastFramePositions: {
359
446
  frame: number;
360
447
  position: Position;
361
448
  } | undefined;
362
449
  constructor(gameEngine: RpgCommonGame, playerId: string);
363
450
  get otherPlayersCollision(): RpgPlayer[];
451
+ get world(): WorldClass | undefined;
364
452
  teleported: number;
453
+ deleted: boolean;
365
454
  _init(): void;
366
455
  private get schema();
367
456
  /**
@@ -426,16 +515,6 @@ export declare class RpgPlayer extends RpgCommonPlayer {
426
515
  createDynamicEvent(eventsList: EventPosOption | EventPosOption[], forceMode?: boolean): {
427
516
  [eventId: string]: RpgEvent;
428
517
  };
429
- /**
430
- * Removes an event from the map (Scenario Mode). Returns false if the event is not found
431
- * @title Remove Event
432
- * @since 3.0.0-beta.4
433
- * @method player.removeEvent(eventId)
434
- * @param {string} eventId Event Name
435
- * @returns {boolean}
436
- * @memberof Player
437
- */
438
- removeEvent(eventId: string): boolean;
439
518
  /**
440
519
  * Allows to change the positions of the player on the current map.
441
520
  * You can put the X and Y positions or the name of the created shape on Tiled Map Editor.
@@ -476,10 +555,10 @@ export declare class RpgPlayer extends RpgCommonPlayer {
476
555
  * @title Load progress
477
556
  * @method player.load(json)
478
557
  * @param {string} json The JSON sent by the method save()
479
- * @returns {string}
558
+ * @returns {Promise<boolean | RpgMap | null>}
480
559
  * @memberof Player
481
560
  */
482
- load(json: any): void;
561
+ load(json: any): Promise<boolean | RpgMap | null>;
483
562
  /**
484
563
  * Returns a JSON with all the data to keep in memory. Then use the `load()` method to load the data
485
564
  *
@@ -572,6 +651,7 @@ export declare class RpgPlayer extends RpgCommonPlayer {
572
651
  * This is useful, if for example, you want to make an animated character (sword stroke when pressing a key)
573
652
  * When the animation is finished, the original graphic is displayed again
574
653
  *
654
+ *
575
655
  * ```ts
576
656
  * player.showAnimation('sword_stroke', 'default', true)
577
657
  * ```
@@ -582,6 +662,10 @@ export declare class RpgPlayer extends RpgCommonPlayer {
582
662
  * player.showAnimation(['body', 'sword_stroke'], 'default', true)
583
663
  * ```
584
664
  *
665
+ * ::: tip
666
+ * For this to work, the animations must have been previously defined in `setGraphic`.
667
+ * :::
668
+ *
585
669
  * @title Show Animation
586
670
  * @method player.showAnimation(graphic,animationName,replaceGraphic=false)
587
671
  * @param {string | string[]} graphic spritesheet identifier
@@ -659,8 +743,9 @@ export declare class RpgPlayer extends RpgCommonPlayer {
659
743
  * @memberof Player
660
744
  */
661
745
  off(key: string): void;
746
+ disconnect(): void;
662
747
  emitToMap(key: string, value: any): void;
663
- execMethod(methodName: string, methodData?: never[]): Promise<any[]>;
748
+ execMethod(methodName: string, methodData?: never[], target?: any): Promise<any>;
664
749
  _triggerHook(name: any, val?: any): void;
665
750
  private _eventChanges;
666
751
  /**
@@ -692,22 +777,18 @@ export declare class RpgPlayer extends RpgCommonPlayer {
692
777
  * @title Play Sound
693
778
  * @method player.playSound(soundId,allMap=false)
694
779
  * @param {string} soundId Sound identifier, defined on the client side
695
- * @param {boolean} [allMap] Indicate if the sound is heard by the players on the map
780
+ * @param {boolean} [forEveryone=false] Indicate if the sound is heard by the players on the map
696
781
  * @since 3.0.0-alpha.9
697
782
  * @returns {void}
698
783
  * @memberof Player
699
784
  */
700
- playSound(soundId: string, allMap?: boolean): void;
785
+ playSound(soundId: string, forEveryone?: boolean): void;
701
786
  }
702
- export interface RpgPlayer extends ItemManager, GoldManager, StateManager, SkillManager, ParameterManager, EffectManager, ClassManager, ElementManager, GuiManager, VariableManager, MoveManager, BattleManager, ComponentManager {
787
+ export interface RpgPlayer extends EventManager, ItemManager, GoldManager, StateManager, SkillManager, ParameterManager, EffectManager, ClassManager, ElementManager, GuiManager, VariableManager, MoveManager, BattleManager, ComponentManager {
703
788
  _socket: any;
704
789
  vision: any;
705
790
  attachShape: any;
706
791
  }
707
- export declare enum EventMode {
708
- Shared = "shared",
709
- Scenario = "scenario"
710
- }
711
792
  export interface RpgClassEvent<T> {
712
793
  _name: string;
713
794
  new (): T;
@@ -715,5 +796,20 @@ export interface RpgClassEvent<T> {
715
796
  export declare class RpgEvent extends RpgPlayer {
716
797
  readonly type: string;
717
798
  properties: any;
799
+ mode: EventMode;
800
+ playerRelated: RpgPlayer | null;
801
+ constructor(gameEngine: RpgCommonGame, playerId: string);
718
802
  execMethod(methodName: string, methodData?: never[]): Promise<any>;
803
+ changeRoomState(path: string): void;
804
+ /**
805
+ * Deletes the event from the map (in shared or scenario mode)
806
+ *
807
+ * @title Remove
808
+ * @since 4.0.0
809
+ * @method event.remove()
810
+ * @returns {boolean} true if the event has been removed. If false, the event is not on the map
811
+ * @memberof RpgEvent
812
+ */
813
+ remove(): boolean;
814
+ emitToMap(key: string, value: any): void;
719
815
  }