@rpgjs/server 3.0.0-beta.5 → 3.0.0-beta.8

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.
@@ -1,5 +1,5 @@
1
- import { RpgCommonPlayer, RpgCommonMap as RpgMap } from '@rpgjs/common';
2
- import * as Kompute from 'kompute/build/Kompute';
1
+ import { RpgCommonPlayer, RpgCommonGame } from '@rpgjs/common';
2
+ import { RpgMap, EventPosOption } from '../Game/Map';
3
3
  import { ItemManager } from './ItemManager';
4
4
  import { GoldManager } from './GoldManager';
5
5
  import { StateManager } from './StateManager';
@@ -12,9 +12,6 @@ import { GuiManager } from './GuiManager';
12
12
  import { VariableManager } from './VariableManager';
13
13
  import { MoveManager } from './MoveManager';
14
14
  import { BattleManager } from './BattleManager';
15
- import { BehaviorManager } from './BehaviorManager';
16
- import { EventPosOption } from '../Game/Map';
17
- import { RpgEvent } from '..';
18
15
  export interface Position {
19
16
  x: number;
20
17
  y: number;
@@ -163,11 +160,11 @@ export declare class RpgPlayer extends RpgCommonPlayer {
163
160
  param: any;
164
161
  _rooms: never[];
165
162
  prevMap: string;
163
+ private touchSide;
166
164
  _lastFrame: number;
167
- constructor(gameEngine?: any, playerId?: any);
165
+ constructor(gameEngine: RpgCommonGame, playerId: string);
168
166
  get otherPlayersCollision(): RpgPlayer[];
169
167
  teleported: number;
170
- initialize(): void;
171
168
  _init(): void;
172
169
  /**
173
170
  * ```ts
@@ -202,10 +199,15 @@ export declare class RpgPlayer extends RpgCommonPlayer {
202
199
  * @method player.changeMap(mapId,positions)
203
200
  * @param {string} mapId
204
201
  * @param { {x: number, y: number, z?: number} | string } [positions]
205
- * @returns {Promise<RpgMap>}
202
+ * @returns {Promise<RpgMap | null>} null if map not exists
206
203
  * @memberof Player
207
204
  */
208
- changeMap(mapId: string, positions?: any): Promise<RpgMap>;
205
+ changeMap(mapId: string, positions?: {
206
+ x: number;
207
+ y: number;
208
+ z?: number;
209
+ } | string): Promise<RpgMap | null>;
210
+ autoChangeMap(nextPosition: Position): Promise<boolean>;
209
211
  /**
210
212
  * Dynamically create an event in Scenario mode on the current map
211
213
  *
@@ -272,18 +274,14 @@ export declare class RpgPlayer extends RpgCommonPlayer {
272
274
  * @title Teleport on the map
273
275
  * @method player.teleport(positions)
274
276
  * @param { {x: number, y: number, z?: number} | string } [positions]
275
- * @returns { {x: number, y: number, z: number} }
277
+ * @returns {Promise<{ {x: number, y: number, z: number} }>}
276
278
  * @memberof Player
277
279
  */
278
280
  teleport(positions?: {
279
281
  x: number;
280
282
  y: number;
281
283
  z?: number;
282
- } | string): Position;
283
- startBattle(enemies: {
284
- enemy: any;
285
- level: number;
286
- }[]): any;
284
+ } | string): Promise<Position>;
287
285
  /**
288
286
  * Load the saved data with the method save()
289
287
  * If the player was on a map, it repositions the player on the map.
@@ -332,6 +330,7 @@ export declare class RpgPlayer extends RpgCommonPlayer {
332
330
  map: string;
333
331
  pendingMove: {
334
332
  input: string;
333
+ frame: number;
335
334
  }[];
336
335
  speed: number;
337
336
  };
@@ -350,15 +349,16 @@ export declare class RpgPlayer extends RpgCommonPlayer {
350
349
  /**
351
350
  * Retrieves data from the current map
352
351
  *
352
+ * returns null if the player is not assigned to a map
353
+ *
353
354
  * @title Get Current Map
354
355
  * @method player.getCurrentMap()
355
- * @returns {RpgMap}
356
+ * @returns {RpgMap | null}
356
357
  * @memberof Player
357
358
  */
358
- getCurrentMap(): RpgMap;
359
+ getCurrentMap<T extends RpgMap = RpgMap>(): T | null;
359
360
  loadScene(name: string, data: any): void;
360
361
  private _getMap;
361
- showEffect(): void;
362
362
  /**
363
363
  * Calls the showAnimation() method on the client side to display an animation on the player
364
364
  * You must remember to create the spritesheet beforehand
@@ -481,7 +481,7 @@ export declare class RpgPlayer extends RpgCommonPlayer {
481
481
  * @title Play Sound
482
482
  * @method player.playSound(soundId,allMap=false)
483
483
  * @param {string} soundId Sound identifier, defined on the client side
484
- * @param {boolean} [allMap] Indicate if the sound is heard by the players on the card
484
+ * @param {boolean} [allMap] Indicate if the sound is heard by the players on the map
485
485
  * @since 3.0.0-alpha.9
486
486
  * @stability 1
487
487
  * @returns {void}
@@ -489,10 +489,17 @@ export declare class RpgPlayer extends RpgCommonPlayer {
489
489
  */
490
490
  playSound(soundId: string, allMap?: boolean): void;
491
491
  }
492
- export interface RpgPlayer extends ItemManager, GoldManager, StateManager, SkillManager, ParameterManager, EffectManager, ClassManager, ElementManager, GuiManager, VariableManager, MoveManager, BattleManager, BehaviorManager {
492
+ export interface RpgPlayer extends ItemManager, GoldManager, StateManager, SkillManager, ParameterManager, EffectManager, ClassManager, ElementManager, GuiManager, VariableManager, MoveManager, BattleManager {
493
493
  _socket: any;
494
- server: any;
495
494
  vision: any;
496
- steerable: Kompute;
497
495
  attachShape: any;
498
496
  }
497
+ export declare enum EventMode {
498
+ Shared = "shared",
499
+ Scenario = "scenario"
500
+ }
501
+ export declare class RpgEvent extends RpgPlayer {
502
+ readonly type: string;
503
+ properties: any;
504
+ execMethod(methodName: string, methodData?: never[]): Promise<any>;
505
+ }
@@ -1,23 +1,4 @@
1
1
  "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
5
- }) : (function(o, m, k, k2) {
6
- if (k2 === undefined) k2 = k;
7
- o[k2] = m[k];
8
- }));
9
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
10
- Object.defineProperty(o, "default", { enumerable: true, value: v });
11
- }) : function(o, v) {
12
- o["default"] = v;
13
- });
14
- var __importStar = (this && this.__importStar) || function (mod) {
15
- if (mod && mod.__esModule) return mod;
16
- var result = {};
17
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
18
- __setModuleDefault(result, mod);
19
- return result;
20
- };
21
2
  var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
22
3
  function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
23
4
  return new (P || (P = Promise))(function (resolve, reject) {
@@ -31,9 +12,8 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
31
12
  return (mod && mod.__esModule) ? mod : { "default": mod };
32
13
  };
33
14
  Object.defineProperty(exports, "__esModule", { value: true });
34
- exports.RpgPlayer = void 0;
15
+ exports.RpgEvent = exports.EventMode = exports.RpgPlayer = void 0;
35
16
  const common_1 = require("@rpgjs/common");
36
- const YUKA = __importStar(require("yuka"));
37
17
  const Query_1 = require("../Query");
38
18
  const lodash_merge_1 = __importDefault(require("lodash.merge"));
39
19
  const ItemManager_1 = require("./ItemManager");
@@ -49,8 +29,6 @@ const VariableManager_1 = require("./VariableManager");
49
29
  const MoveManager_1 = require("./MoveManager");
50
30
  const BattleManager_1 = require("./BattleManager");
51
31
  const presets_1 = require("../presets");
52
- const BehaviorManager_1 = require("./BehaviorManager");
53
- const __1 = require("..");
54
32
  const { isPromise, applyMixins, isString } = common_1.Utils;
55
33
  const itemSchemas = {
56
34
  name: String,
@@ -106,6 +84,7 @@ class RpgPlayer extends common_1.RpgCommonPlayer {
106
84
  this.events = {};
107
85
  this._rooms = [];
108
86
  this.prevMap = '';
87
+ this.touchSide = false;
109
88
  this._lastFrame = 0;
110
89
  // 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
90
  this.teleported = 0;
@@ -115,6 +94,7 @@ class RpgPlayer extends common_1.RpgCommonPlayer {
115
94
  get otherPlayersCollision() {
116
95
  return super.otherPlayersCollision;
117
96
  }
97
+ /** @internal */
118
98
  initialize() {
119
99
  this.expCurve = {
120
100
  basis: 30,
@@ -136,8 +116,6 @@ class RpgPlayer extends common_1.RpgCommonPlayer {
136
116
  this.canMove = true;
137
117
  this.through = false;
138
118
  this.throughOtherPlayer = true;
139
- // this.steerable = new Kompute.Steerable(this.playerId, new Kompute.Vector3D(), new Kompute.Vector3D(10, 10, 0))
140
- this.steerable = new YUKA.Vehicle();
141
119
  this.initialLevel = 1;
142
120
  this.finalLevel = 99;
143
121
  this.level = this.initialLevel;
@@ -202,11 +180,75 @@ class RpgPlayer extends common_1.RpgCommonPlayer {
202
180
  * @method player.changeMap(mapId,positions)
203
181
  * @param {string} mapId
204
182
  * @param { {x: number, y: number, z?: number} | string } [positions]
205
- * @returns {Promise<RpgMap>}
183
+ * @returns {Promise<RpgMap | null>} null if map not exists
206
184
  * @memberof Player
207
185
  */
208
186
  changeMap(mapId, positions) {
209
- return this.server.getScene('map').changeMap(mapId, this, positions);
187
+ return this.server.sceneMap.changeMap(mapId, this, positions);
188
+ }
189
+ autoChangeMap(nextPosition) {
190
+ return __awaiter(this, void 0, void 0, function* () {
191
+ const map = this.getCurrentMap();
192
+ const worldMaps = map === null || map === void 0 ? void 0 : map.getInWorldMaps();
193
+ let ret = false;
194
+ if (worldMaps && map) {
195
+ const direction = this.getDirection();
196
+ const marginLeftRight = map.tileWidth / 2;
197
+ const marginTopDown = map.tileHeight / 2;
198
+ const changeMap = (adjacent, to) => __awaiter(this, void 0, void 0, function* () {
199
+ if (this.touchSide) {
200
+ return false;
201
+ }
202
+ this.touchSide = true;
203
+ const [nextMap] = worldMaps.getAdjacentMaps(map, adjacent);
204
+ if (!nextMap)
205
+ return false;
206
+ const id = nextMap.id;
207
+ const nextMapInfo = worldMaps.getMapInfo(id);
208
+ return !!(yield this.changeMap(id, to(nextMapInfo)));
209
+ });
210
+ if (nextPosition.x < marginLeftRight && direction == common_1.Direction.Left) {
211
+ ret = yield changeMap({
212
+ x: map.worldX - 1,
213
+ y: this.worldPositionY + 1
214
+ }, nextMapInfo => ({
215
+ x: (nextMapInfo.width) - this.wHitbox - marginLeftRight,
216
+ y: map.worldY - nextMapInfo.y + nextPosition.y
217
+ }));
218
+ }
219
+ else if (nextPosition.x > map.widthPx - this.wHitbox - marginLeftRight && direction == common_1.Direction.Right) {
220
+ ret = yield changeMap({
221
+ x: map.worldX + map.widthPx + 1,
222
+ y: this.worldPositionY + 1
223
+ }, nextMapInfo => ({
224
+ x: marginLeftRight,
225
+ y: map.worldY - nextMapInfo.y + nextPosition.y
226
+ }));
227
+ }
228
+ else if (nextPosition.y < marginTopDown && direction == common_1.Direction.Up) {
229
+ ret = yield changeMap({
230
+ x: this.worldPositionX + 1,
231
+ y: map.worldY - 1
232
+ }, nextMapInfo => ({
233
+ x: map.worldX - nextMapInfo.x + nextPosition.x,
234
+ y: (nextMapInfo.height) - this.hHitbox - marginTopDown,
235
+ }));
236
+ }
237
+ else if (nextPosition.y > map.heightPx - this.hHitbox - marginTopDown && direction == common_1.Direction.Down) {
238
+ ret = yield changeMap({
239
+ x: this.worldPositionX + 1,
240
+ y: map.worldY + map.heightPx + 1
241
+ }, nextMapInfo => ({
242
+ x: map.worldX - nextMapInfo.x + nextPosition.x,
243
+ y: marginTopDown,
244
+ }));
245
+ }
246
+ else {
247
+ this.touchSide = false;
248
+ }
249
+ }
250
+ return ret;
251
+ });
210
252
  }
211
253
  /**
212
254
  * Dynamically create an event in Scenario mode on the current map
@@ -250,16 +292,19 @@ class RpgPlayer extends common_1.RpgCommonPlayer {
250
292
  let eventsListMode = eventsList;
251
293
  if (forceMode) {
252
294
  eventsListMode = eventsList.map(event => {
253
- event.event.mode = __1.EventMode.Scenario;
295
+ event.event.mode = EventMode.Scenario;
254
296
  return event;
255
297
  });
256
298
  }
257
- const events = mapInstance.createEvents(eventsListMode, __1.EventMode.Scenario);
299
+ const events = mapInstance.createEvents(eventsListMode, EventMode.Scenario);
300
+ let ret = {};
258
301
  for (let key in events) {
259
302
  this.events[key] = events[key];
260
303
  this.events[key].execMethod('onInit', [this]);
304
+ // force to get Proxy object to sync with client
305
+ ret = Object.assign(Object.assign({}, ret), { [key]: this.events[key] });
261
306
  }
262
- return events;
307
+ return ret;
263
308
  }
264
309
  /**
265
310
  * Removes an event from the map (Scenario Mode). Returns false if the event is not found
@@ -300,24 +345,24 @@ class RpgPlayer extends common_1.RpgCommonPlayer {
300
345
  * @title Teleport on the map
301
346
  * @method player.teleport(positions)
302
347
  * @param { {x: number, y: number, z?: number} | string } [positions]
303
- * @returns { {x: number, y: number, z: number} }
348
+ * @returns {Promise<{ {x: number, y: number, z: number} }>}
304
349
  * @memberof Player
305
350
  */
306
351
  teleport(positions) {
307
- if (isString(positions))
308
- positions = this.getCurrentMap().getPositionByShape(shape => shape.name == positions || shape.type == positions);
309
- if (!positions)
310
- positions = { x: 0, y: 0, z: 0 };
311
- if (!positions.z)
312
- positions.z = 0;
313
- this.teleported++;
314
- this.position = positions;
315
- // force interaction with event or shape
316
- this.isCollided(this.position);
317
- return positions;
318
- }
319
- startBattle(enemies) {
320
- return this.server.getScene('battle').create(this, enemies);
352
+ var _a;
353
+ return __awaiter(this, void 0, void 0, function* () {
354
+ if (isString(positions))
355
+ positions = (_a = this.getCurrentMap()) === null || _a === void 0 ? void 0 : _a.getPositionByShape(shape => shape.name == positions || shape.type == positions);
356
+ if (!positions)
357
+ positions = { x: 0, y: 0, z: 0 };
358
+ if (!positions.z)
359
+ positions.z = 0;
360
+ this.teleported++;
361
+ this.position = positions;
362
+ // force interaction with event or shape
363
+ yield this.isCollided(this.position);
364
+ return positions;
365
+ });
321
366
  }
322
367
  /**
323
368
  * Load the saved data with the method save()
@@ -452,9 +497,11 @@ class RpgPlayer extends common_1.RpgCommonPlayer {
452
497
  /**
453
498
  * Retrieves data from the current map
454
499
  *
500
+ * returns null if the player is not assigned to a map
501
+ *
455
502
  * @title Get Current Map
456
503
  * @method player.getCurrentMap()
457
- * @returns {RpgMap}
504
+ * @returns {RpgMap | null}
458
505
  * @memberof Player
459
506
  */
460
507
  getCurrentMap() {
@@ -469,14 +516,6 @@ class RpgPlayer extends common_1.RpgCommonPlayer {
469
516
  _getMap(id) {
470
517
  return common_1.RpgCommonMap.buffer.get(id);
471
518
  }
472
- // TODO
473
- showEffect() {
474
- this.emit('callMethod', {
475
- objectId: this.playerId,
476
- name: 'addEffect',
477
- params: []
478
- });
479
- }
480
519
  /**
481
520
  * Calls the showAnimation() method on the client side to display an animation on the player
482
521
  * You must remember to create the spritesheet beforehand
@@ -605,7 +644,6 @@ class RpgPlayer extends common_1.RpgCommonPlayer {
605
644
  const { events } = this._getMap(this.map);
606
645
  const arrayEvents = [...Object.values(this.events), ...Object.values(events)];
607
646
  for (let event of arrayEvents) {
608
- // TODO, sync client
609
647
  if (event.onChanges)
610
648
  event.onChanges(this);
611
649
  }
@@ -639,7 +677,7 @@ class RpgPlayer extends common_1.RpgCommonPlayer {
639
677
  * @title Play Sound
640
678
  * @method player.playSound(soundId,allMap=false)
641
679
  * @param {string} soundId Sound identifier, defined on the client side
642
- * @param {boolean} [allMap] Indicate if the sound is heard by the players on the card
680
+ * @param {boolean} [allMap] Indicate if the sound is heard by the players on the map
643
681
  * @since 3.0.0-alpha.9
644
682
  * @stability 1
645
683
  * @returns {void}
@@ -672,7 +710,40 @@ applyMixins(RpgPlayer, [
672
710
  GuiManager_1.GuiManager,
673
711
  VariableManager_1.VariableManager,
674
712
  MoveManager_1.MoveManager,
675
- BattleManager_1.BattleManager,
676
- BehaviorManager_1.BehaviorManager
713
+ BattleManager_1.BattleManager
677
714
  ]);
715
+ var EventMode;
716
+ (function (EventMode) {
717
+ EventMode["Shared"] = "shared";
718
+ EventMode["Scenario"] = "scenario";
719
+ })(EventMode = exports.EventMode || (exports.EventMode = {}));
720
+ class RpgEvent extends RpgPlayer {
721
+ constructor() {
722
+ super(...arguments);
723
+ this.type = 'event';
724
+ this.properties = {};
725
+ }
726
+ execMethod(methodName, methodData = []) {
727
+ return __awaiter(this, void 0, void 0, function* () {
728
+ if (!this[methodName]) {
729
+ return;
730
+ }
731
+ const ret = this[methodName](...methodData);
732
+ const sync = () => {
733
+ const player = methodData[0];
734
+ if (player instanceof RpgPlayer) {
735
+ player.syncChanges();
736
+ }
737
+ };
738
+ if (common_1.Utils.isPromise(ret)) {
739
+ ret.then(sync);
740
+ }
741
+ else {
742
+ sync();
743
+ }
744
+ return ret;
745
+ });
746
+ }
747
+ }
748
+ exports.RpgEvent = RpgEvent;
678
749
  //# sourceMappingURL=Player.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Player.js","sourceRoot":"","sources":["../../src/Player/Player.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Player.js","sourceRoot":"","sources":["../../src/Player/Player.ts"],"names":[],"mappings":"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"}
@@ -3,9 +3,9 @@ import { RpgPlayer } from './Player/Player';
3
3
  import { RpgMap } from './Game/Map';
4
4
  import { RpgServerEngine } from './server';
5
5
  import { MapOptions } from './decorators/map';
6
- interface RpgClassMap<T> {
7
- new (server: any): T;
8
- }
6
+ import { RpgClassMap } from './Scenes/Map';
7
+ import { TiledMap } from '@rpgjs/tiled';
8
+ import { WorldMap } from './Game/WorldMaps';
9
9
  export interface RpgServerEngineHooks {
10
10
  /**
11
11
  * When the server starts
@@ -101,6 +101,14 @@ export interface RpgPlayerHooks {
101
101
  * @memberof RpgPlayerHooks
102
102
  */
103
103
  onMove?: (player: RpgPlayer) => any;
104
+ /**
105
+ * Allow or not the player to switch maps. `nexMap` parameter is the retrieved RpgMap class and not the instance
106
+ *
107
+ * @prop { (player: RpgPlayer, nextMap: RpgClassMap<RpgMap>) => boolean | Promise<boolean> } [canChangeMap]
108
+ * @since 3.0.0-beta.8
109
+ * @memberof RpgPlayerHooks
110
+ */
111
+ canChangeMap?: (player: RpgPlayer, nextMap: RpgClassMap<RpgMap>) => boolean | Promise<boolean>;
104
112
  }
105
113
  export interface RpgServer {
106
114
  /**
@@ -209,11 +217,60 @@ export interface RpgServer {
209
217
  * class RpgServerEngine { }
210
218
  * ```
211
219
  *
220
+ * Since version 3.0.0-beta.8, you can just pass the path to the file. The identifier will then be the name of the file
221
+ *
222
+ * ```ts
223
+ * @RpgModule<RpgServer>({
224
+ * maps: [
225
+ * require('./tmx/mymap.tmx') // id is "mymap"
226
+ * ]
227
+ * })
228
+ * class RpgServerEngine { }
229
+ * ```
212
230
  *
213
231
  * @prop {RpgClassMap<RpgMap>[]} [maps]
214
232
  * @memberof RpgServer
215
233
  * */
216
- maps?: RpgClassMap<RpgMap>[] | MapOptions[];
234
+ maps?: RpgClassMap<RpgMap>[] | MapOptions[] | string[] | TiledMap[];
235
+ /**
236
+ * Loads the content of a `.world` file from Tiled Map Editor into the map scene
237
+ *
238
+ * > Note, that if the map already exists (i.e. you have already defined an RpgMap), the world will retrieve the already existing map. Otherwise it will create a new map
239
+ *
240
+ * @prop {object[]} [worldMaps]
241
+ * object is
242
+ * ```ts
243
+ * {
244
+ * id?: string
245
+ * maps: {
246
+ * id?: string
247
+ * properties?: object
248
+ * fileName: string;
249
+ height: number;
250
+ width: number;
251
+ x: number;
252
+ y: number;
253
+ * }[],
254
+ onlyShowAdjacentMaps: boolean, // only for Tiled Map Editor
255
+ type: 'world' // only for Tiled Map Editor
256
+ * }
257
+ * ```
258
+ * @param {RpgSceneMap} sceneMap
259
+ * @since 3.0.0-beta.8
260
+ * @example
261
+ * ```ts
262
+ * import myworld from 'myworld.world'
263
+ *
264
+ * @RpgModule<RpgServer>({
265
+ * worldMaps: [
266
+ * myworld
267
+ * ]
268
+ * })
269
+ * class RpgServerEngine { }
270
+ * ```
271
+ * @memberof RpgServer
272
+ */
273
+ worldMaps?: WorldMap[];
217
274
  /**
218
275
  * Combat formula used in the method player.applyDamage(). There are already formulas in the RPGJS engine but you can customize them
219
276
  *
@@ -259,4 +316,3 @@ export interface RpgServer {
259
316
  coefficientElements?: (a: any, b: any, bDef: any) => number;
260
317
  };
261
318
  }
262
- export {};