@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
package/CHANGELOG.md ADDED
@@ -0,0 +1,32 @@
1
+ # Change Log
2
+
3
+ All notable changes to this project will be documented in this file.
4
+ See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
+
6
+ # 4.0.0-rc.10 (2023-08-28)
7
+
8
+ **Note:** Version bump only for package @rpgjs/server
9
+
10
+
11
+
12
+
13
+
14
+ # 4.0.0-rc.9 (2023-08-25)
15
+
16
+ **Note:** Version bump only for package @rpgjs/server
17
+
18
+
19
+
20
+
21
+
22
+ # 4.0.0-rc.8 (2023-08-23)
23
+
24
+ **Note:** Version bump only for package @rpgjs/server
25
+
26
+
27
+
28
+
29
+
30
+ # [4.0.0-rc.5](https://github.com/RSamaium/RPG-JS/compare/v4.0.0-rc.4...v4.0.0-rc.5) (2023-08-16)
31
+
32
+ **Note:** Version bump only for package @rpgjs/server
@@ -0,0 +1,53 @@
1
+ import { RpgEvent } from "../Player/Player";
2
+ import { RpgMap } from "./Map";
3
+ export type EventsList = {
4
+ [playerId: string]: RpgEvent;
5
+ };
6
+ export declare enum EventMode {
7
+ Shared = "shared",
8
+ Scenario = "scenario"
9
+ }
10
+ /**
11
+ * ⚠️ Please note that the event system can be on the player or on the card.
12
+ * On player, it's Scenario mode
13
+ * On-map: Shared mode
14
+ * So this here is either RpgMap or RpgPlayer
15
+ * You can check the mode with the mode cleanup on the retrieved event
16
+ */
17
+ export declare class EventManager {
18
+ /**
19
+ * @title event list
20
+ * @prop { { [eventId: string]: RpgEvent } } [events]
21
+ * @memberof Map
22
+ * */
23
+ events: EventsList;
24
+ /**
25
+ * Get Event in current map
26
+ * @title Get Event
27
+ * @since 3.0.0-beta.7
28
+ * @method map.getEvent(eventId)
29
+ * @param {string} eventId Event Id
30
+ * @returns {RpgEvent | undefined}
31
+ * @memberof Map
32
+ */
33
+ getEvent<T extends RpgEvent>(eventId: string): T | undefined;
34
+ getEventByName<T extends RpgEvent>(eventName: string): T | undefined;
35
+ /**
36
+ * Removes an event from the map. Returns false if the event is not found
37
+ *
38
+ * Deletion of an event forced to be performed at the end of several aynschronous notions
39
+ *
40
+ * @title Remove Event
41
+ * @since 3.0.0-beta.4
42
+ * @method map.removeEvent(eventId)
43
+ * @param {string} eventId Event Name
44
+ * @returns {boolean}
45
+ * @memberof Map
46
+ */
47
+ removeEvent(eventId: string): boolean;
48
+ }
49
+ export interface EventManager {
50
+ getCurrentMap(): RpgMap | null;
51
+ id: string;
52
+ $setCurrentState: (path: string, value: any) => void;
53
+ }
@@ -0,0 +1,93 @@
1
+ import { PlayerType } from "@rpgjs/types";
2
+ export var EventMode;
3
+ (function (EventMode) {
4
+ EventMode["Shared"] = "shared";
5
+ EventMode["Scenario"] = "scenario";
6
+ })(EventMode || (EventMode = {}));
7
+ /**
8
+ * ⚠️ Please note that the event system can be on the player or on the card.
9
+ * On player, it's Scenario mode
10
+ * On-map: Shared mode
11
+ * So this here is either RpgMap or RpgPlayer
12
+ * You can check the mode with the mode cleanup on the retrieved event
13
+ */
14
+ export class EventManager {
15
+ /**
16
+ * Get Event in current map
17
+ * @title Get Event
18
+ * @since 3.0.0-beta.7
19
+ * @method map.getEvent(eventId)
20
+ * @param {string} eventId Event Id
21
+ * @returns {RpgEvent | undefined}
22
+ * @memberof Map
23
+ */
24
+ getEvent(eventId) {
25
+ return this.events[eventId];
26
+ }
27
+ getEventByName(eventName) {
28
+ const events = Object.keys(this.events);
29
+ const key = events.find(key => this.events[key].name == eventName);
30
+ if (!key)
31
+ return;
32
+ return this.events[key];
33
+ }
34
+ /**
35
+ * Removes an event from the map. Returns false if the event is not found
36
+ *
37
+ * Deletion of an event forced to be performed at the end of several aynschronous notions
38
+ *
39
+ * @title Remove Event
40
+ * @since 3.0.0-beta.4
41
+ * @method map.removeEvent(eventId)
42
+ * @param {string} eventId Event Name
43
+ * @returns {boolean}
44
+ * @memberof Map
45
+ */
46
+ removeEvent(eventId) {
47
+ if (!this.events[eventId])
48
+ return false;
49
+ const mode = this.events[eventId].mode;
50
+ this.removeObject(this.events[eventId], mode);
51
+ delete this.events[eventId];
52
+ // Change the state of the packet that will be sent to the client, adding the deleted flag to indicate to the client that the event has been deleted.
53
+ if (mode == EventMode.Scenario) {
54
+ this.getCurrentMap()?.$setCurrentState(`users.${this.id}.events.${eventId}.deleted`, true);
55
+ }
56
+ else {
57
+ this.$setCurrentState(`events.${eventId}.deleted`, true);
58
+ }
59
+ return true;
60
+ }
61
+ // @internal
62
+ removeObject(object, mode = EventMode.Shared) {
63
+ const map = this.getCurrentMap();
64
+ if (!map)
65
+ return;
66
+ map.getShapes().forEach(shape => shape.out(object));
67
+ const events = Object.values(map.game.world.getObjectsOfGroup(map.id, object));
68
+ for (let event of events) {
69
+ object.getShapes().forEach(shape => shape.out(event));
70
+ event.getShapes().forEach(shape => shape.out(object));
71
+ }
72
+ object._destroy$.next();
73
+ object._destroy$.complete();
74
+ // force RXJS, close subject. TODO: avoid this
75
+ if (object.type != PlayerType.Player)
76
+ object._destroy$['_closed'] = true;
77
+ map.grid.clearObjectInCells(object.id);
78
+ for (let playerId in map.players) {
79
+ if (object.id == playerId)
80
+ continue;
81
+ const otherPlayer = map.players[playerId];
82
+ if (otherPlayer.following?.id == object.id) {
83
+ otherPlayer.cameraFollow(otherPlayer);
84
+ }
85
+ }
86
+ // last player before removed of this map
87
+ if (map.nbPlayers === 1 && object.type === PlayerType.Player) {
88
+ // clear cache for this map
89
+ map.remove(true);
90
+ }
91
+ }
92
+ }
93
+ //# sourceMappingURL=EventManager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"EventManager.js","sourceRoot":"","sources":["../../src/Game/EventManager.ts"],"names":[],"mappings":"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"}
package/lib/Game/Map.d.ts CHANGED
@@ -1,10 +1,11 @@
1
1
  import { RpgCommonMap, RpgShape, RpgCommonGame, AbstractObject } from '@rpgjs/common';
2
2
  import { TiledTileset } from '@rpgjs/tiled';
3
3
  import { EventOptions } from '../decorators/event';
4
- import { RpgPlayer, EventMode, RpgEvent } from '../Player/Player';
4
+ import { RpgPlayer, RpgEvent } from '../Player/Player';
5
5
  import { RpgServerEngine } from '../server';
6
6
  import { Observable } from 'rxjs';
7
7
  import { HitBox, MovingHitbox } from '@rpgjs/types';
8
+ import { EventManager, EventMode } from './EventManager';
8
9
  export type EventPosOption = {
9
10
  x: number;
10
11
  y: number;
@@ -22,12 +23,6 @@ export declare class RpgMap extends RpgCommonMap {
22
23
  private _server;
23
24
  _events: EventOption[];
24
25
  file: any;
25
- /**
26
- * @title event list
27
- * @prop { { [eventId: string]: RpgEvent } } [events]
28
- * @memberof Map
29
- * */
30
- events: EventsList;
31
26
  constructor(_server: RpgServerEngine);
32
27
  /**
33
28
  * @title Players list
@@ -86,7 +81,6 @@ export declare class RpgMap extends RpgCommonMap {
86
81
  private loadProperties;
87
82
  get game(): RpgCommonGame;
88
83
  onLeave(player: RpgPlayer): void;
89
- private loadCommonEvents;
90
84
  autoLoadEvent(): void;
91
85
  /**
92
86
  * Edit a tile on the map. All players on the map will see the modified tile
@@ -145,29 +139,8 @@ export declare class RpgMap extends RpgCommonMap {
145
139
  createDynamicEvent(eventsList: EventPosOption | EventPosOption[]): {
146
140
  [eventId: string]: RpgEvent;
147
141
  };
148
- /**
149
- * Get Event in current map
150
- * @title Get Event
151
- * @since 3.0.0-beta.7
152
- * @method map.getEvent(eventId)
153
- * @param {string} eventId Event Id
154
- * @returns {RpgEvent | undefined}
155
- * @memberof Map
156
- */
157
- getEvent<T extends RpgEvent>(eventId: string): T | undefined;
158
- /**
159
- * Removes an event from the map. Returns false if the event is not found
160
- * @title Remove Event
161
- * @since 3.0.0-beta.4
162
- * @method map.removeEvent(eventId)
163
- * @param {string} eventId Event Name
164
- * @returns {boolean}
165
- * @memberof Map
166
- */
167
- removeEvent(eventId: string): boolean;
168
142
  createEvent(obj: EventPosOption, mode: EventMode, shape?: RpgShape): RpgEvent | null;
169
143
  createEvents(eventsList: EventOption[], mode: EventMode): EventsList;
170
- private removeObject;
171
144
  /**
172
145
  * Allows to create a temporary hitbox on the map that can have a movement
173
146
  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
@@ -200,12 +173,15 @@ For example, you can use it to explode a bomb and find all the affected players,
200
173
  */
201
174
  createMovingHitbox(hitboxes: Pick<HitBox, 'width' | 'height' | 'x' | 'y'>[], options?: MovingHitbox): Observable<AbstractObject>;
202
175
  setSync(schema: any): void;
176
+ getCurrentMap(): this;
203
177
  }
204
- export interface RpgMap {
178
+ export interface RpgMap extends EventManager {
205
179
  sounds: string[];
206
180
  $schema: any;
207
181
  $setSchema: (schema: any) => void;
208
182
  $patchSchema: (schema: any) => void;
209
183
  $snapshotUser: (userId: string) => any;
210
184
  onLoad(): any;
185
+ $setCurrentState: (path: string, value: any) => void;
186
+ id: string;
211
187
  }
package/lib/Game/Map.js CHANGED
@@ -1,9 +1,10 @@
1
1
  import { RpgCommonMap, Utils } from '@rpgjs/common';
2
2
  import { TiledParserFile, TiledParser } from '@rpgjs/tiled';
3
- import { EventMode, RpgEvent } from '../Player/Player.js';
3
+ import { RpgEvent } from '../Player/Player.js';
4
4
  import { Move } from '../Player/MoveManager.js';
5
5
  import path from 'path';
6
6
  import { World } from 'simple-room';
7
+ import { EventManager, EventMode } from './EventManager.js';
7
8
  class AutoEvent extends RpgEvent {
8
9
  onInit() {
9
10
  const { graphic, direction, speed, frequency, move } = this.properties;
@@ -37,11 +38,6 @@ export class RpgMap extends RpgCommonMap {
37
38
  constructor(_server) {
38
39
  super();
39
40
  this._server = _server;
40
- /**
41
- * @title event list
42
- * @prop { { [eventId: string]: RpgEvent } } [events]
43
- * @memberof Map
44
- * */
45
41
  this.events = {};
46
42
  }
47
43
  // alias of users property in simple-room package
@@ -192,7 +188,16 @@ export class RpgMap extends RpgCommonMap {
192
188
  onLeave(player) {
193
189
  this.removeObject(player);
194
190
  }
195
- loadCommonEvents(commonEvents) {
191
+ /**
192
+ * Loads common events onto the game map.
193
+ *
194
+ * @private
195
+ * @param {RpgClassEvent<RpgEvent>[]} commonEvents - An array of common events to load.
196
+ * @param {RpgPlayer} [player] - The player instance on which to create the dynamic events. If not provided, the function will use the current instance.
197
+ * @returns {void}
198
+ */
199
+ // @internal
200
+ loadCommonEvents(commonEvents, player) {
196
201
  let events = [];
197
202
  this.getShapes().forEach(shape => {
198
203
  const findEvent = commonEvents.find(event => event._name == shape.name);
@@ -205,7 +210,12 @@ export class RpgMap extends RpgCommonMap {
205
210
  event: findEvent
206
211
  });
207
212
  });
208
- this.createDynamicEvent(events);
213
+ if (player) {
214
+ player.createDynamicEvent(events, false);
215
+ }
216
+ else {
217
+ this.createDynamicEvent(events);
218
+ }
209
219
  }
210
220
  // TODO
211
221
  autoLoadEvent() {
@@ -307,34 +317,6 @@ export class RpgMap extends RpgCommonMap {
307
317
  }
308
318
  return ret;
309
319
  }
310
- /**
311
- * Get Event in current map
312
- * @title Get Event
313
- * @since 3.0.0-beta.7
314
- * @method map.getEvent(eventId)
315
- * @param {string} eventId Event Id
316
- * @returns {RpgEvent | undefined}
317
- * @memberof Map
318
- */
319
- getEvent(eventId) {
320
- return this.events[eventId];
321
- }
322
- /**
323
- * Removes an event from the map. Returns false if the event is not found
324
- * @title Remove Event
325
- * @since 3.0.0-beta.4
326
- * @method map.removeEvent(eventId)
327
- * @param {string} eventId Event Name
328
- * @returns {boolean}
329
- * @memberof Map
330
- */
331
- removeEvent(eventId) {
332
- if (!this.events[eventId])
333
- return false;
334
- this.removeObject(this.events[eventId]);
335
- delete this.events[eventId];
336
- return true;
337
- }
338
320
  createEvent(obj, mode, shape) {
339
321
  let event, position;
340
322
  // We retrieve the information of the event ([Event] or [{event: Event, x: number, y: number}])
@@ -343,7 +325,7 @@ export class RpgMap extends RpgCommonMap {
343
325
  }
344
326
  else {
345
327
  event = obj.event;
346
- position = { x: obj.x, y: obj.y, z: 0 };
328
+ position = { x: obj.x, y: obj.y, z: obj.z ?? 0 };
347
329
  }
348
330
  // The event is ignored if the mode is different.
349
331
  if (event.mode != mode) {
@@ -375,30 +357,6 @@ export class RpgMap extends RpgCommonMap {
375
357
  }
376
358
  return events;
377
359
  }
378
- removeObject(object) {
379
- this.getShapes().forEach(shape => shape.out(object));
380
- const events = Object.values(this.game.world.getObjectsOfGroup(this.id, object));
381
- for (let event of events) {
382
- object.getShapes().forEach(shape => shape.out(event));
383
- event.getShapes().forEach(shape => shape.out(object));
384
- }
385
- object._destroy$.next();
386
- object._destroy$.complete();
387
- this.grid.clearObjectInCells(object.id);
388
- for (let playerId in this.players) {
389
- if (object.id == playerId)
390
- continue;
391
- const otherPlayer = this.players[playerId];
392
- if (otherPlayer.following?.id == object.id) {
393
- otherPlayer.cameraFollow(otherPlayer);
394
- }
395
- }
396
- // last player before removed of this map
397
- if (this.nbPlayers === 1 && object.type === 'player') {
398
- // clear cache for this map
399
- this.remove(true);
400
- }
401
- }
402
360
  /**
403
361
  * Allows to create a temporary hitbox on the map that can have a movement
404
362
  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
@@ -435,5 +393,12 @@ For example, you can use it to explode a bomb and find all the affected players,
435
393
  setSync(schema) {
436
394
  return this.$setSchema(schema);
437
395
  }
396
+ // Reflects itself. Just for compatibility with the EventManager class
397
+ getCurrentMap() {
398
+ return this;
399
+ }
438
400
  }
401
+ Utils.applyMixins(RpgMap, [
402
+ EventManager
403
+ ]);
439
404
  //# sourceMappingURL=Map.js.map
@@ -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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"}
@@ -7,11 +7,11 @@ export class MenuGui extends Gui {
7
7
  open() {
8
8
  this.on('useItem', (id) => {
9
9
  try {
10
- // this.player.useItem(id)
10
+ this.player.useItem(id);
11
11
  this.player.syncChanges();
12
12
  }
13
13
  catch (err) {
14
- console.log(err);
14
+ this.player.showNotification(err.msg);
15
15
  }
16
16
  });
17
17
  return super.open('', {
@@ -1 +1 @@
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;gBACD,0BAA0B;gBACzB,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,CAAA;aAC5B;YACD,OAAO,GAAG,EAAE;gBACR,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;aACnB;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
+ {"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"}
@@ -5,23 +5,23 @@ import { EffectManager } from './EffectManager';
5
5
  import { RpgServerEngine } from '../server';
6
6
  export declare class BattleManager {
7
7
  /**
8
- * Apply damage. Player will lose HP. the `otherPlayer` parameter is the other player, the one who attacks.
8
+ * Apply damage. Player will lose HP. the `attackerPlayer` parameter is the other player, the one who attacks.
9
9
  *
10
10
  * If you don't set the skill parameter, it will be a physical attack.
11
11
  * The attack formula is already defined but you can customize it in the server options
12
12
  *
13
13
  * ```ts
14
- * player.applyDamage(otherPlayer) // returns { damage: number }
14
+ * player.applyDamage(attackerPlayer) // returns { damage: number }
15
15
  * ```
16
16
  *
17
17
  * @title Apply Damage
18
- * @method player.applyDamage(otherPlayer,skill)
19
- * @param {RpgPlayer} otherPlayer The attacking player
18
+ * @method player.applyDamage(attackerPlayer,skill)
19
+ * @param {RpgPlayer} attackerPlayer The attacking player
20
20
  * @param {any} [skill]
21
21
  * @returns {object}
22
22
  * @memberof BattleManager
23
23
  * */
24
- applyDamage(otherPlayer: RpgPlayer, skill?: any): {
24
+ applyDamage(attackerPlayer: RpgPlayer, skill?: any): {
25
25
  damage: number;
26
26
  critical: boolean;
27
27
  elementVulnerable: boolean;
@@ -7,23 +7,23 @@ import { EffectManager } from './EffectManager.js';
7
7
  const { applyMixins } = Utils;
8
8
  export class BattleManager {
9
9
  /**
10
- * Apply damage. Player will lose HP. the `otherPlayer` parameter is the other player, the one who attacks.
10
+ * Apply damage. Player will lose HP. the `attackerPlayer` parameter is the other player, the one who attacks.
11
11
  *
12
12
  * If you don't set the skill parameter, it will be a physical attack.
13
13
  * The attack formula is already defined but you can customize it in the server options
14
14
  *
15
15
  * ```ts
16
- * player.applyDamage(otherPlayer) // returns { damage: number }
16
+ * player.applyDamage(attackerPlayer) // returns { damage: number }
17
17
  * ```
18
18
  *
19
19
  * @title Apply Damage
20
- * @method player.applyDamage(otherPlayer,skill)
21
- * @param {RpgPlayer} otherPlayer The attacking player
20
+ * @method player.applyDamage(attackerPlayer,skill)
21
+ * @param {RpgPlayer} attackerPlayer The attacking player
22
22
  * @param {any} [skill]
23
23
  * @returns {object}
24
24
  * @memberof BattleManager
25
25
  * */
26
- applyDamage(otherPlayer, skill) {
26
+ applyDamage(attackerPlayer, skill) {
27
27
  const getParam = (player) => {
28
28
  const params = {};
29
29
  this.parameters.forEach((val, key) => {
@@ -41,7 +41,7 @@ export class BattleManager {
41
41
  let guard = false;
42
42
  let superGuard = false;
43
43
  let elementVulnerable = false;
44
- const paramA = getParam(otherPlayer);
44
+ const paramA = getParam(attackerPlayer);
45
45
  const paramB = getParam(this);
46
46
  if (skill) {
47
47
  fn = this.getFormulas('damageSkill');
@@ -56,7 +56,7 @@ export class BattleManager {
56
56
  throw new Error('Physic Formulas not exists');
57
57
  }
58
58
  damage = fn(paramA, paramB);
59
- const coef = this.coefficientElements(otherPlayer);
59
+ const coef = this.coefficientElements(attackerPlayer);
60
60
  if (coef >= 2) {
61
61
  elementVulnerable = true;
62
62
  }
@@ -82,6 +82,7 @@ export class BattleManager {
82
82
  }
83
83
  if (this.hasEffect(Effect.SUPER_GUARD)) {
84
84
  damage /= 4;
85
+ superGuard = true;
85
86
  }
86
87
  this.hp -= damage;
87
88
  return {
@@ -1 +1 @@
1
- {"version":3,"file":"BattleManager.js","sourceRoot":"","sources":["../../src/Player/BattleManager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAO,eAAe,CAAA;AACtC,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAA;AAErD,OAAO,EACH,GAAG,EACH,IAAI,EACJ,IAAI,EACP,MAAM,YAAY,CAAA;AACnB,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAA;AACxC,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAGhD,MAAM,EACF,WAAW,EACd,GAAG,KAAK,CAAA;AAET,MAAM,OAAO,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,OAAO;gBACH,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,GAAG;gBACjB,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC,IAAI;gBACnB,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC,IAAI;gBACnB,GAAG,MAAM;aACZ,CAAA;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,MAAM,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,MAAM,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;AAED,WAAW,CAAC,aAAa,EAAE,CAAC,gBAAgB,EAAE,cAAc,EAAE,aAAa,CAAC,CAAC,CAAA"}
1
+ {"version":3,"file":"BattleManager.js","sourceRoot":"","sources":["../../src/Player/BattleManager.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,11 @@
1
1
  import { ParameterManager } from './ParameterManager';
2
2
  import { ItemManager } from './ItemManager';
3
+ type ClassClass = {
4
+ new (...args: any[]): any;
5
+ };
6
+ type ActorClass = {
7
+ new (...args: any[]): any;
8
+ };
3
9
  export declare class ClassManager {
4
10
  _class: any;
5
11
  /**
@@ -13,11 +19,11 @@ export declare class ClassManager {
13
19
  *
14
20
  * @title Set Class
15
21
  * @method player.setClass(ClassClass)
16
- * @param {ClassClass} class
22
+ * @param {ClassClass} class class or id
17
23
  * @returns {instance of ClassClass}
18
24
  * @memberof ClassManager
19
25
  * */
20
- setClass(_class: any): any;
26
+ setClass(_class: ClassClass | string): any;
21
27
  /**
22
28
  * Allows to give a set of already defined properties to the player (default equipment, or a list of skills to learn according to the level)
23
29
  *
@@ -29,12 +35,13 @@ export declare class ClassManager {
29
35
  *
30
36
  * @title Set Actor
31
37
  * @method player.setActor(ActorClass)
32
- * @param {ActorClass} actorClass
38
+ * @param {ActorClass} actorClass actor class or id
33
39
  * @returns {instance of ActorClass}
34
40
  * @memberof ClassManager
35
41
  * */
36
- setActor(actorClass: any): any;
42
+ setActor(actorClass: ActorClass | string): any;
37
43
  }
38
44
  export interface ClassManager extends ParameterManager, ItemManager {
39
45
  name: string;
40
46
  }
47
+ export {};
@@ -1,7 +1,7 @@
1
1
  import { Utils } from '@rpgjs/common';
2
2
  import { ParameterManager } from './ParameterManager.js';
3
3
  import { ItemManager } from './ItemManager.js';
4
- const { applyMixins } = Utils;
4
+ const { applyMixins, isString } = Utils;
5
5
  export class ClassManager {
6
6
  /**
7
7
  * Assign a class to the player
@@ -14,11 +14,13 @@ export class ClassManager {
14
14
  *
15
15
  * @title Set Class
16
16
  * @method player.setClass(ClassClass)
17
- * @param {ClassClass} class
17
+ * @param {ClassClass} class class or id
18
18
  * @returns {instance of ClassClass}
19
19
  * @memberof ClassManager
20
20
  * */
21
21
  setClass(_class) {
22
+ if (isString(_class))
23
+ _class = this.databaseById(_class);
22
24
  this._class = new _class();
23
25
  this['execMethod']('onSet', [this], this._class);
24
26
  return this._class;
@@ -34,11 +36,13 @@ export class ClassManager {
34
36
  *
35
37
  * @title Set Actor
36
38
  * @method player.setActor(ActorClass)
37
- * @param {ActorClass} actorClass
39
+ * @param {ActorClass} actorClass actor class or id
38
40
  * @returns {instance of ActorClass}
39
41
  * @memberof ClassManager
40
42
  * */
41
43
  setActor(actorClass) {
44
+ if (isString(actorClass))
45
+ actorClass = this.databaseById(actorClass);
42
46
  const actor = new actorClass();
43
47
  this.name = actor.name;
44
48
  this.initialLevel = actor.initialLevel;