@rpgjs/server 3.0.0 → 3.2.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 (54) hide show
  1. package/lib/Game/Map.d.ts +47 -10
  2. package/lib/Game/Map.js +75 -14
  3. package/lib/Game/Map.js.map +1 -1
  4. package/lib/Player/BattleManager.d.ts +2 -1
  5. package/lib/Player/BattleManager.js.map +1 -1
  6. package/lib/Player/MoveManager.d.ts +38 -2
  7. package/lib/Player/MoveManager.js +18 -0
  8. package/lib/Player/MoveManager.js.map +1 -1
  9. package/lib/Player/Player.d.ts +32 -12
  10. package/lib/Player/Player.js +46 -7
  11. package/lib/Player/Player.js.map +1 -1
  12. package/lib/Query.d.ts +20 -3
  13. package/lib/Query.js +19 -3
  14. package/lib/Query.js.map +1 -1
  15. package/lib/Scenes/Map.d.ts +1 -0
  16. package/lib/Scenes/Map.js +10 -0
  17. package/lib/Scenes/Map.js.map +1 -1
  18. package/lib/decorators/map.d.ts +12 -0
  19. package/lib/decorators/map.js +6 -8
  20. package/lib/decorators/map.js.map +1 -1
  21. package/lib/index.d.ts +16 -17
  22. package/lib/index.js +19 -19
  23. package/lib/index.js.map +1 -1
  24. package/lib/server.d.ts +4 -1
  25. package/lib/server.js +32 -15
  26. package/lib/server.js.map +1 -1
  27. package/package.json +7 -6
  28. package/lib/Enemy.d.ts +0 -7
  29. package/lib/Enemy.js +0 -26
  30. package/lib/Enemy.js.map +0 -1
  31. package/lib/Event.d.ts +0 -10
  32. package/lib/Event.js +0 -49
  33. package/lib/Event.js.map +0 -1
  34. package/lib/Game/Battle/Battle.d.ts +0 -12
  35. package/lib/Game/Battle/Battle.js +0 -37
  36. package/lib/Game/Battle/Battle.js.map +0 -1
  37. package/lib/Gui/BattleGui.d.ts +0 -9
  38. package/lib/Gui/BattleGui.js +0 -25
  39. package/lib/Gui/BattleGui.js.map +0 -1
  40. package/lib/Player/BehaviorManager.d.ts +0 -12
  41. package/lib/Player/BehaviorManager.js +0 -127
  42. package/lib/Player/BehaviorManager.js.map +0 -1
  43. package/lib/Scenes/Battle.d.ts +0 -8
  44. package/lib/Scenes/Battle.js +0 -34
  45. package/lib/Scenes/Battle.js.map +0 -1
  46. package/lib/decorators/strategy-broadcasting.d.ts +0 -7
  47. package/lib/decorators/strategy-broadcasting.js +0 -13
  48. package/lib/decorators/strategy-broadcasting.js.map +0 -1
  49. package/lib/workers/move.d.ts +0 -2
  50. package/lib/workers/move.js +0 -8
  51. package/lib/workers/move.js.map +0 -1
  52. package/lib/yuka.module.d.ts +0 -6379
  53. package/lib/yuka.module.js +0 -14546
  54. package/lib/yuka.module.js.map +0 -1
package/lib/Game/Map.d.ts CHANGED
@@ -1,7 +1,9 @@
1
- import { RpgCommonMap, RpgShape, RpgCommonGame } from '@rpgjs/common';
1
+ import { RpgCommonMap, RpgShape, RpgCommonGame, AbstractObject } from '@rpgjs/common';
2
2
  import { EventOptions } from '../decorators/event';
3
3
  import { RpgPlayer, EventMode, RpgEvent } from '../Player/Player';
4
4
  import { RpgServerEngine } from '../server';
5
+ import { Observable } from 'rxjs';
6
+ import { HitBox, MovingHitbox } from '@rpgjs/types';
5
7
  export declare type EventPosOption = {
6
8
  x: number;
7
9
  y: number;
@@ -9,6 +11,12 @@ export declare type EventPosOption = {
9
11
  event: EventOptions;
10
12
  };
11
13
  export declare type EventOption = EventPosOption | EventOptions;
14
+ export declare type PlayersList = {
15
+ [eventId: string]: RpgEvent;
16
+ };
17
+ export declare type EventsList = {
18
+ [playerId: string]: RpgPlayer;
19
+ };
12
20
  export declare class RpgMap extends RpgCommonMap {
13
21
  private _server;
14
22
  _events: EventOption[];
@@ -18,15 +26,14 @@ export declare class RpgMap extends RpgCommonMap {
18
26
  * @prop { { [eventId: string]: RpgEvent } } [events]
19
27
  * @memberof Map
20
28
  * */
21
- events: {
22
- [eventId: string]: RpgEvent;
23
- };
29
+ events: EventsList;
24
30
  constructor(_server: RpgServerEngine);
31
+ get players(): PlayersList;
32
+ get nbPlayers(): number;
25
33
  load(): Promise<void>;
26
34
  private loadProperties;
27
35
  get game(): RpgCommonGame;
28
- onLoad(): void;
29
- onJoin(player: RpgPlayer): void;
36
+ private removeObject;
30
37
  onLeave(player: RpgPlayer): void;
31
38
  autoLoadEvent(): void;
32
39
  /**
@@ -106,10 +113,39 @@ export declare class RpgMap extends RpgCommonMap {
106
113
  * @memberof Map
107
114
  */
108
115
  removeEvent(eventId: string): boolean;
109
- createEvent(obj: EventPosOption, mode: EventMode, shape?: any): RpgEvent | null;
110
- createEvents(eventsList: EventOption[], mode: EventMode): {
111
- [eventId: string]: RpgEvent;
112
- };
116
+ createEvent(obj: EventPosOption, mode: EventMode, shape?: RpgShape): RpgEvent | null;
117
+ createEvents(eventsList: EventOption[], mode: EventMode): EventsList;
118
+ /**
119
+ * Allows to create a temporary hitbox on the map that can have a movement
120
+ 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
121
+ * @title Create a temporary and moving hitbox
122
+ * @since 3.2.0
123
+ * @method map.createMovingHitbox(hitboxes,options)
124
+ * @param {Array<{ width: number, height: number, x: number, y: number }>} hitboxes Create several hitboxes that will give an effect of movement
125
+ * @param {object} [options]
126
+ * @param {speed} [options.speed=1] speed of movement (in frames)
127
+ * @returns {Observable<AbstractObject>} You find the methods of position and movement of an event
128
+ * @memberof Map
129
+ * @example
130
+ *
131
+ * ```ts
132
+ * // Two hitboxes that will be done very quickly
133
+ * map.createMovingHitbox(
134
+ * [
135
+ * { x: 0, y: 0, width: 100, height: 100 },
136
+ * { x: 20, y: 0, width: 100, height: 100 }
137
+ * ]
138
+ * ).subscribe({
139
+ * next(hitbox) {
140
+ * console.log(hitbox.otherPlayersCollision)
141
+ * },
142
+ * complete() {
143
+ * console.log('finish')
144
+ * }
145
+ * })
146
+ * ```
147
+ */
148
+ createMovingHitbox(hitboxes: Pick<HitBox, 'width' | 'height' | 'x' | 'y'>[], options?: MovingHitbox): Observable<AbstractObject>;
113
149
  setSync(schema: any): void;
114
150
  }
115
151
  export interface RpgMap {
@@ -118,4 +154,5 @@ export interface RpgMap {
118
154
  $setSchema: (schema: any) => void;
119
155
  $patchSchema: (schema: any) => void;
120
156
  $snapshotUser: (userId: string) => any;
157
+ onLoad(): any;
121
158
  }
package/lib/Game/Map.js CHANGED
@@ -56,6 +56,13 @@ class RpgMap extends common_1.RpgCommonMap {
56
56
  * */
57
57
  this.events = {};
58
58
  }
59
+ // alias of users property in simple-room package
60
+ get players() {
61
+ return this['users'];
62
+ }
63
+ get nbPlayers() {
64
+ return Object.keys(this.players).length;
65
+ }
59
66
  load() {
60
67
  const _super = Object.create(null, {
61
68
  load: { get: () => super.load }
@@ -66,7 +73,9 @@ class RpgMap extends common_1.RpgCommonMap {
66
73
  return;
67
74
  }
68
75
  const parser = new tiled_1.TiledParserFile(this.file, this._server.inputOptions.basePath + '/' + this._server.assetsPath);
69
- const data = yield parser.parseFilePromise();
76
+ const data = yield parser.parseFilePromise({
77
+ getOnlyBasename: true
78
+ });
70
79
  _super.load.call(this, data);
71
80
  this.getAllObjects().forEach(this.createShape.bind(this));
72
81
  this.loadProperties(data.properties);
@@ -76,7 +85,8 @@ class RpgMap extends common_1.RpgCommonMap {
76
85
  });
77
86
  common_1.RpgCommonMap.buffer.set(this.id, this);
78
87
  this.createDynamicEvent(this._events);
79
- this.onLoad();
88
+ if (this.onLoad)
89
+ this.onLoad();
80
90
  });
81
91
  }
82
92
  loadProperties(properties) {
@@ -87,18 +97,35 @@ class RpgMap extends common_1.RpgCommonMap {
87
97
  get game() {
88
98
  return this._server.gameEngine;
89
99
  }
90
- onLoad() { }
91
- onJoin(player) {
92
- }
93
- onLeave(player) {
94
- this.getShapes().forEach(shape => shape.out(player));
95
- const events = Object.values(this.game.world.getObjectsOfGroup(this.id, player));
100
+ removeObject(object) {
101
+ var _a;
102
+ this.getShapes().forEach(shape => shape.out(object));
103
+ const events = Object.values(this.game.world.getObjectsOfGroup(this.id, object));
96
104
  for (let event of events) {
97
- player.getShapes().forEach(shape => shape.out(event));
98
- event.getShapes().forEach(shape => shape.out(player));
105
+ object.getShapes().forEach(shape => shape.out(event));
106
+ event.getShapes().forEach(shape => shape.out(object));
107
+ }
108
+ object.stopMoveTo();
109
+ this.grid.clearObjectInCells(object.id);
110
+ for (let playerId in this.players) {
111
+ if (object.id == playerId)
112
+ continue;
113
+ const otherPlayer = this.players[playerId];
114
+ if (((_a = otherPlayer.following) === null || _a === void 0 ? void 0 : _a.id) == object.id) {
115
+ otherPlayer.cameraFollow(otherPlayer);
116
+ }
117
+ }
118
+ // last player before removed of this map
119
+ if (this.nbPlayers === 1) {
120
+ // clear cache for this map
121
+ this._server.sceneMap.removeMap(this.id);
99
122
  }
100
- this.grid.clearObjectInCells(player.id);
101
123
  }
124
+ // Hook: called by simple-room package
125
+ onLeave(player) {
126
+ this.removeObject(player);
127
+ }
128
+ // TODO
102
129
  autoLoadEvent() {
103
130
  this.getShapes().forEach(shape => {
104
131
  const { properties } = shape;
@@ -149,7 +176,6 @@ class RpgMap extends common_1.RpgCommonMap {
149
176
  }
150
177
  return tiles;
151
178
  }
152
- // TODO: return type
153
179
  getEventShape(eventName) {
154
180
  return this.getShapes().find(shape => shape.name == eventName);
155
181
  }
@@ -192,6 +218,7 @@ class RpgMap extends common_1.RpgCommonMap {
192
218
  let ret = {};
193
219
  for (let key in events) {
194
220
  this.events[key] = events[key];
221
+ this.events[key].updateInVirtualGrid();
195
222
  this.events[key].execMethod('onInit');
196
223
  // force to get Proxy object to sync with client
197
224
  ret = Object.assign(Object.assign({}, ret), { [key]: this.events[key] });
@@ -222,6 +249,7 @@ class RpgMap extends common_1.RpgCommonMap {
222
249
  removeEvent(eventId) {
223
250
  if (!this.events[eventId])
224
251
  return false;
252
+ this.removeObject(this.events[eventId]);
225
253
  delete this.events[eventId];
226
254
  return true;
227
255
  }
@@ -242,15 +270,15 @@ class RpgMap extends common_1.RpgCommonMap {
242
270
  // Create an instance of RpgEvent and assign its options
243
271
  const ev = this.game.addEvent(event);
244
272
  const _shape = shape || this.getEventShape(ev.name);
273
+ ev.map = this.id;
274
+ ev.server = this._server;
245
275
  ev.width = event.width || this.tileWidth;
246
276
  ev.height = event.height || this.tileHeight;
247
277
  if (_shape && _shape.properties)
248
278
  ev.properties = _shape.properties;
249
279
  if (event.hitbox)
250
280
  ev.setHitbox(event.hitbox.width, event.hitbox.height);
251
- ev.map = this.id;
252
281
  ev.teleport(position || ev.name);
253
- ev.server = this._server;
254
282
  return ev;
255
283
  }
256
284
  createEvents(eventsList, mode) {
@@ -265,6 +293,39 @@ class RpgMap extends common_1.RpgCommonMap {
265
293
  }
266
294
  return events;
267
295
  }
296
+ /**
297
+ * Allows to create a temporary hitbox on the map that can have a movement
298
+ 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
299
+ * @title Create a temporary and moving hitbox
300
+ * @since 3.2.0
301
+ * @method map.createMovingHitbox(hitboxes,options)
302
+ * @param {Array<{ width: number, height: number, x: number, y: number }>} hitboxes Create several hitboxes that will give an effect of movement
303
+ * @param {object} [options]
304
+ * @param {speed} [options.speed=1] speed of movement (in frames)
305
+ * @returns {Observable<AbstractObject>} You find the methods of position and movement of an event
306
+ * @memberof Map
307
+ * @example
308
+ *
309
+ * ```ts
310
+ * // Two hitboxes that will be done very quickly
311
+ * map.createMovingHitbox(
312
+ * [
313
+ * { x: 0, y: 0, width: 100, height: 100 },
314
+ * { x: 20, y: 0, width: 100, height: 100 }
315
+ * ]
316
+ * ).subscribe({
317
+ * next(hitbox) {
318
+ * console.log(hitbox.otherPlayersCollision)
319
+ * },
320
+ * complete() {
321
+ * console.log('finish')
322
+ * }
323
+ * })
324
+ * ```
325
+ */
326
+ createMovingHitbox(hitboxes, options = {}) {
327
+ return this._createMovingHitbox(this.game, this._server.tick, this.id, hitboxes, options);
328
+ }
268
329
  setSync(schema) {
269
330
  return this.$setSchema(schema);
270
331
  }
@@ -1 +1 @@
1
- {"version":3,"file":"Map.js","sourceRoot":"","sources":["../../src/Game/Map.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Map.js","sourceRoot":"","sources":["../../src/Game/Map.ts"],"names":[],"mappings":"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"}
@@ -2,6 +2,7 @@ import { ParameterManager } from './ParameterManager';
2
2
  import { RpgPlayer } from './Player';
3
3
  import { ElementManager } from './ElementManager';
4
4
  import { EffectManager } from './EffectManager';
5
+ import { RpgServerEngine } from '../server';
5
6
  export declare class BattleManager {
6
7
  /**
7
8
  * Apply damage. Player will lose HP. the `otherPlayer` parameter is the other player, the one who attacks.
@@ -31,5 +32,5 @@ export declare class BattleManager {
31
32
  }
32
33
  export interface BattleManager extends ParameterManager, ElementManager, EffectManager {
33
34
  name: string;
34
- server: any;
35
+ server: RpgServerEngine;
35
36
  }
@@ -1 +1 @@
1
- {"version":3,"file":"BattleManager.js","sourceRoot":"","sources":["../../src/Player/BattleManager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"BattleManager.js","sourceRoot":"","sources":["../../src/Player/BattleManager.ts"],"names":[],"mappings":";;;AAAA,0CAAsC;AACtC,yDAAqD;AAErD,wCAImB;AACnB,8CAAwC;AACxC,qDAAkD;AAClD,mDAAgD;AAGhD,MAAM,EACF,WAAW,EACd,GAAG,cAAK,CAAA;AAET,MAAa,aAAa;IAEtB;;;;;;;;;;;;;;;;SAgBK;IACL,WAAW,CAAC,WAAsB,EAAE,KAAW;QAO3C,MAAM,QAAQ,GAAG,CAAC,MAAM,EAAE,EAAE;YACxB,MAAM,MAAM,GAAG,EAAE,CAAA;YACjB,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;gBACjC,MAAM,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;YACnC,CAAC,CAAC,CAAA;YACF,uBACI,CAAC,aAAG,CAAC,EAAE,MAAM,CAAC,GAAG,EACjB,CAAC,cAAI,CAAC,EAAE,MAAM,CAAC,IAAI,EACnB,CAAC,cAAI,CAAC,EAAE,MAAM,CAAC,IAAI,IAChB,MAAM,EACZ;QACL,CAAC,CAAA;QACD,IAAI,MAAM,GAAG,CAAC,EAAE,EAAE,CAAA;QAClB,IAAI,QAAQ,GAAG,KAAK,CAAA;QACpB,IAAI,KAAK,GAAG,KAAK,CAAA;QACjB,IAAI,UAAU,GAAG,KAAK,CAAA;QACtB,IAAI,iBAAiB,GAAG,KAAK,CAAA;QAC7B,MAAM,MAAM,GAAG,QAAQ,CAAC,WAAW,CAAC,CAAA;QACpC,MAAM,MAAM,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAA;QAC7B,IAAI,KAAK,EAAE;YACP,EAAE,GAAG,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,CAAA;YACpC,IAAI,CAAC,EAAE,EAAE;gBACL,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAA;aAC/C;YACD,MAAM,GAAG,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,CAAA;SACrC;aACI;YACD,EAAE,GAAG,IAAI,CAAC,WAAW,CAAC,cAAc,CAAC,CAAA;YACrC,IAAI,CAAC,EAAE,EAAE;gBACL,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAA;aAChD;YACD,MAAM,GAAG,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;YAC3B,MAAM,IAAI,GAAG,IAAI,CAAC,mBAAmB,CAAC,WAAW,CAAC,CAAA;YAClD,IAAI,IAAI,IAAI,CAAC,EAAE;gBACX,iBAAiB,GAAG,IAAI,CAAA;aAC3B;YACD,MAAM,IAAI,IAAI,CAAA;YACd,EAAE,GAAG,IAAI,CAAC,WAAW,CAAC,gBAAgB,CAAC,CAAA;YACvC,IAAI,EAAE,EAAE;gBACJ,IAAI,SAAS,GAAG,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAA;gBAC1C,IAAI,MAAM,IAAI,SAAS,EAAE;oBACrB,QAAQ,GAAG,IAAI,CAAA;iBAClB;gBACD,MAAM,GAAG,SAAS,CAAA;aACrB;SACJ;QACD,IAAI,IAAI,CAAC,SAAS,CAAC,iBAAM,CAAC,KAAK,CAAC,EAAE;YAC9B,EAAE,GAAG,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,CAAA;YACpC,IAAI,EAAE,EAAE;gBACJ,IAAI,SAAS,GAAG,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAA;gBAC1C,IAAI,MAAM,IAAI,SAAS,EAAE;oBACrB,KAAK,GAAG,IAAI,CAAA;iBACf;gBACD,MAAM,GAAG,SAAS,CAAA;aACrB;SACJ;QACD,IAAI,IAAI,CAAC,SAAS,CAAC,iBAAM,CAAC,WAAW,CAAC,EAAE;YACpC,MAAM,IAAI,CAAC,CAAA;SACd;QACD,IAAI,CAAC,EAAE,IAAI,MAAM,CAAA;QACjB,OAAO;YACH,MAAM;YACN,QAAQ;YACR,iBAAiB;YACjB,KAAK;YACL,UAAU;SACb,CAAA;IACL,CAAC;IAED,WAAW,CAAC,IAAY;QACpB,OAAO,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,CAAA;IAC3C,CAAC;CACJ;AAlGD,sCAkGC;AAED,WAAW,CAAC,aAAa,EAAE,CAAC,mCAAgB,EAAE,+BAAc,EAAE,6BAAa,CAAC,CAAC,CAAA"}
@@ -1,5 +1,7 @@
1
- import { Direction } from '@rpgjs/common';
2
- import { RpgPlayer } from './Player';
1
+ import { Direction, RpgShape, Vector2d } from '@rpgjs/common';
2
+ import { Behavior, ClientMode, MoveMode, MoveTo, PositionXY, SocketEvents } from '@rpgjs/types';
3
+ import { RpgServerEngine } from '../server';
4
+ import { RpgEvent, RpgPlayer } from './Player';
3
5
  declare type CallbackTileMove = (player: RpgPlayer, map: any) => Direction[];
4
6
  declare type CallbackTurnMove = (player: RpgPlayer, map: any) => string;
5
7
  declare type Routes = (string | Promise<any> | Direction | Direction[] | Function)[];
@@ -286,10 +288,44 @@ export declare class MoveManager {
286
288
  * ```
287
289
  */
288
290
  replayRoutes(): void;
291
+ /**
292
+ * Move the event to another event, a player, a shape or a specific position.
293
+ * The event will avoid obstacles, but you can tell if it is stuck or has completed its path
294
+ *
295
+ * @title Move To
296
+ * @method player.moveTo()
297
+ * @param {RpgPlayer|RpgEvent|RpgShape|Position} target the target
298
+ * @param {object} [options] - animate. Set a boolean to use default parameters
299
+ * @param {boolean} [options.infinite=false] - moves infinitely towards the target, you have to stop its movement manually with the method `stopMoveTo()`
300
+ * @param {() => void} [options.onComplete] - Callback when the event arrives at the destination
301
+ * @param {(duration:number) => void} [options.onStuck] - callback when the event is blocked against a wall. Duration gives you the duration (in frames) of the blocking time
302
+ * @returns {void}
303
+ * @since 3.2.0
304
+ * @memberof MoveManager
305
+ * @example
306
+ *
307
+ * ```ts
308
+ * import { Move } from '@rpgjs/server'
309
+ *
310
+ * player.moveTo(otherPlayer)
311
+ * ```
312
+ */
313
+ moveTo(event: RpgEvent, options?: MoveTo): any;
314
+ moveTo(player: RpgPlayer, options?: MoveTo): any;
315
+ moveTo(position: PositionXY, options?: MoveTo): any;
316
+ moveTo(shape: RpgShape, options?: MoveTo): any;
317
+ setMoveMode(mode: MoveMode): void;
289
318
  }
290
319
  export interface MoveManager {
291
320
  moveByDirection: (direction: Direction, deltaTimeInt: number) => boolean;
292
321
  changeDirection: (direction: Direction) => boolean;
293
322
  getCurrentMap: any;
323
+ checkCollision: boolean;
324
+ clientModeMove: ClientMode;
325
+ behavior: Behavior;
326
+ emit(name: SocketEvents, params: any): any;
327
+ id: string;
328
+ server: RpgServerEngine;
329
+ position: Vector2d;
294
330
  }
295
331
  export {};
@@ -12,6 +12,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
12
12
  exports.MoveManager = exports.Move = exports.Speed = exports.Frequency = void 0;
13
13
  const common_1 = require("@rpgjs/common");
14
14
  const common_2 = require("@rpgjs/common");
15
+ const types_1 = require("@rpgjs/types");
15
16
  const { arrayFlat, random, isFunction, capitalize } = common_2.Utils;
16
17
  function wait(sec) {
17
18
  return new Promise((resolve) => {
@@ -421,6 +422,23 @@ class MoveManager {
421
422
  if (this._infiniteRoutes)
422
423
  this.infiniteMoveRoute(this._infiniteRoutes);
423
424
  }
425
+ moveTo(position, options) {
426
+ return this['_moveTo'](this.server.tick, position, options);
427
+ }
428
+ // TODO
429
+ setMoveMode(mode) {
430
+ if (mode.checkCollision)
431
+ this.checkCollision = mode.checkCollision;
432
+ if (mode.clientMode)
433
+ this.clientModeMove = mode.clientMode;
434
+ if (mode.behavior)
435
+ this.behavior = mode.behavior;
436
+ this.emit(types_1.SocketEvents.CallMethod, {
437
+ objectId: this.id,
438
+ name: types_1.SocketMethods.ModeMove,
439
+ params: [mode]
440
+ });
441
+ }
424
442
  }
425
443
  exports.MoveManager = MoveManager;
426
444
  //# sourceMappingURL=MoveManager.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"MoveManager.js","sourceRoot":"","sources":["../../src/Player/MoveManager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"MoveManager.js","sourceRoot":"","sources":["../../src/Player/MoveManager.ts"],"names":[],"mappings":"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"}
@@ -12,6 +12,7 @@ import { GuiManager } from './GuiManager';
12
12
  import { VariableManager } from './VariableManager';
13
13
  import { MoveManager } from './MoveManager';
14
14
  import { BattleManager } from './BattleManager';
15
+ import { CameraOptions, PositionXY_OptionalZ } from '@rpgjs/types';
15
16
  export interface Position {
16
17
  x: number;
17
18
  y: number;
@@ -200,8 +201,12 @@ export declare class RpgPlayer extends RpgCommonPlayer {
200
201
  session: string | null;
201
202
  prevMap: string;
202
203
  private touchSide;
203
- _lastFrame: number;
204
- _lastFramePositions: Map<number, Position>;
204
+ otherPossessedPlayer: RpgPlayer | RpgEvent | null;
205
+ following: RpgPlayer | RpgEvent | null;
206
+ _lastFramePositions: {
207
+ frame: number;
208
+ position: Position;
209
+ };
205
210
  constructor(gameEngine: RpgCommonGame, playerId: string);
206
211
  get otherPlayersCollision(): RpgPlayer[];
207
212
  teleported: number;
@@ -330,11 +335,7 @@ export declare class RpgPlayer extends RpgCommonPlayer {
330
335
  * @returns {Promise<{ {x: number, y: number, z: number} }>}
331
336
  * @memberof Player
332
337
  */
333
- teleport(positions?: {
334
- x: number;
335
- y: number;
336
- z?: number;
337
- } | string): Promise<Position>;
338
+ teleport(positions?: PositionXY_OptionalZ | string): Promise<Position>;
338
339
  /**
339
340
  * Load the saved data with the method save()
340
341
  * If the player was on a map, it repositions the player on the map.
@@ -381,10 +382,7 @@ export declare class RpgPlayer extends RpgCommonPlayer {
381
382
  height: any;
382
383
  };
383
384
  map: string;
384
- pendingMove: {
385
- input: string;
386
- frame: number;
387
- }[];
385
+ pendingMove: import("@rpgjs/types").PendingMove;
388
386
  speed: number;
389
387
  };
390
388
  toJSON(): any;
@@ -463,6 +461,29 @@ export declare class RpgPlayer extends RpgCommonPlayer {
463
461
  * @memberof Player
464
462
  */
465
463
  showAnimation(graphic: string | string[], animationName: string, replaceGraphic?: boolean): void;
464
+ /**
465
+ * TODO:
466
+ * 1. It is necessary, on the client side, to make the character move even if controlled by someone else (problem: same playerId so, one will not move because of the client side prediction. Solution: create a new Id ? like session Id ?
467
+ * 2. You would need several sockets per character. If the character changes map or changes server, all players controlling the character must be able to see it
468
+ * 3. If the player regains control, what happens, do we return to the previous map?
469
+ * 4. If it's an event, you must be able to get the event by id in GameEngine
470
+ */
471
+ takePossessionOf(otherPlayer: RpgPlayer | RpgEvent): void;
472
+ /**
473
+ * Sends the client which event or player the camera should follow. You can set options to perform a motion animation
474
+ *
475
+ * @title Camera Follow
476
+ * @method player.cameraFollow(otherPlayer,options)
477
+ * @param {RpgPlayer | RpgEvent} otherPlayer
478
+ * @param {options} options
479
+ * @param {object | boolean} [options.smoothMove] - animate. Set a boolean to use default parameters
480
+ * @param {number} [options.smoothMove.time=1000] - time to animate
481
+ * @param {string} [options.smoothMove.ease=linear] - easing to use. Go to https://easings.net to get function name
482
+ * @returns {void}
483
+ * @since 3.1.0
484
+ * @memberof Player
485
+ */
486
+ cameraFollow(otherPlayer: RpgPlayer | RpgEvent, options?: CameraOptions): void;
466
487
  /**
467
488
  * Emit data to clients with socket
468
489
  *
@@ -543,7 +564,6 @@ export declare class RpgPlayer extends RpgCommonPlayer {
543
564
  * @param {string} soundId Sound identifier, defined on the client side
544
565
  * @param {boolean} [allMap] Indicate if the sound is heard by the players on the map
545
566
  * @since 3.0.0-alpha.9
546
- * @stability 1
547
567
  * @returns {void}
548
568
  * @memberof Player
549
569
  */
@@ -30,6 +30,7 @@ const VariableManager_1 = require("./VariableManager");
30
30
  const MoveManager_1 = require("./MoveManager");
31
31
  const BattleManager_1 = require("./BattleManager");
32
32
  const presets_1 = require("../presets");
33
+ const types_1 = require("@rpgjs/types");
33
34
  const { isPromise, applyMixins, isString } = common_1.Utils;
34
35
  const itemSchemas = {
35
36
  name: String,
@@ -105,8 +106,8 @@ class RpgPlayer extends common_1.RpgCommonPlayer {
105
106
  this.touchSide = false;
106
107
  /** @internal */
107
108
  this.tmpPositions = null;
108
- this._lastFrame = 0;
109
- this._lastFramePositions = new Map();
109
+ this.otherPossessedPlayer = null;
110
+ this.following = null;
110
111
  // As soon as a teleport has been made, the value is changed to force the client to change the positions on the map without making a move.
111
112
  this.teleported = 0;
112
113
  this.initialize();
@@ -592,10 +593,49 @@ class RpgPlayer extends common_1.RpgCommonPlayer {
592
593
  showAnimation(graphic, animationName, replaceGraphic = false) {
593
594
  this.emitToMap('callMethod', {
594
595
  objectId: this.playerId,
595
- name: 'showAnimation',
596
+ name: types_1.SocketMethods.ShowAnimation,
596
597
  params: [graphic, animationName, replaceGraphic]
597
598
  });
598
599
  }
600
+ /**
601
+ * TODO:
602
+ * 1. It is necessary, on the client side, to make the character move even if controlled by someone else (problem: same playerId so, one will not move because of the client side prediction. Solution: create a new Id ? like session Id ?
603
+ * 2. You would need several sockets per character. If the character changes map or changes server, all players controlling the character must be able to see it
604
+ * 3. If the player regains control, what happens, do we return to the previous map?
605
+ * 4. If it's an event, you must be able to get the event by id in GameEngine
606
+ */
607
+ takePossessionOf(otherPlayer) {
608
+ this.otherPossessedPlayer = otherPlayer;
609
+ this._socket.emit('playerJoined', { playerId: otherPlayer.id, session: this.session });
610
+ this.cameraFollow(otherPlayer);
611
+ }
612
+ /**
613
+ * Sends the client which event or player the camera should follow. You can set options to perform a motion animation
614
+ *
615
+ * @title Camera Follow
616
+ * @method player.cameraFollow(otherPlayer,options)
617
+ * @param {RpgPlayer | RpgEvent} otherPlayer
618
+ * @param {options} options
619
+ * @param {object | boolean} [options.smoothMove] - animate. Set a boolean to use default parameters
620
+ * @param {number} [options.smoothMove.time=1000] - time to animate
621
+ * @param {string} [options.smoothMove.ease=linear] - easing to use. Go to https://easings.net to get function name
622
+ * @returns {void}
623
+ * @since 3.1.0
624
+ * @memberof Player
625
+ */
626
+ cameraFollow(otherPlayer, options = {}) {
627
+ if (otherPlayer.id == this.id) {
628
+ this.following = null;
629
+ }
630
+ else {
631
+ this.following = otherPlayer;
632
+ }
633
+ this.emit(types_1.SocketEvents.CallMethod, {
634
+ objectId: this.playerId,
635
+ name: types_1.SocketMethods.CameraFollow,
636
+ params: [otherPlayer.id, options]
637
+ });
638
+ }
599
639
  /**
600
640
  * Emit data to clients with socket
601
641
  *
@@ -709,21 +749,20 @@ class RpgPlayer extends common_1.RpgCommonPlayer {
709
749
  * @param {string} soundId Sound identifier, defined on the client side
710
750
  * @param {boolean} [allMap] Indicate if the sound is heard by the players on the map
711
751
  * @since 3.0.0-alpha.9
712
- * @stability 1
713
752
  * @returns {void}
714
753
  * @memberof Player
715
754
  */
716
755
  playSound(soundId, allMap = false) {
717
756
  const obj = {
718
757
  objectId: this.playerId,
719
- name: 'playSound',
758
+ name: types_1.SocketMethods.PlaySound,
720
759
  params: [soundId]
721
760
  };
722
761
  if (!allMap) {
723
- this.emit('callMethod', obj);
762
+ this.emit(types_1.SocketEvents.CallMethod, obj);
724
763
  return;
725
764
  }
726
- this.emitToMap('callMethod', obj);
765
+ this.emitToMap(types_1.SocketEvents.CallMethod, obj);
727
766
  }
728
767
  }
729
768
  exports.RpgPlayer = RpgPlayer;