@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.
- package/CHANGELOG.md +32 -0
- package/lib/Game/EventManager.d.ts +53 -0
- package/lib/Game/EventManager.js +93 -0
- package/lib/Game/EventManager.js.map +1 -0
- package/lib/Game/Map.d.ts +6 -30
- package/lib/Game/Map.js +26 -61
- package/lib/Game/Map.js.map +1 -1
- package/lib/Gui/MenuGui.js +2 -2
- package/lib/Gui/MenuGui.js.map +1 -1
- package/lib/Player/BattleManager.d.ts +5 -5
- package/lib/Player/BattleManager.js +8 -7
- package/lib/Player/BattleManager.js.map +1 -1
- package/lib/Player/ClassManager.d.ts +11 -4
- package/lib/Player/ClassManager.js +7 -3
- package/lib/Player/ClassManager.js.map +1 -1
- package/lib/Player/EffectManager.d.ts +2 -2
- package/lib/Player/EffectManager.js +6 -6
- package/lib/Player/EffectManager.js.map +1 -1
- package/lib/Player/ElementManager.d.ts +4 -1
- package/lib/Player/ElementManager.js.map +1 -1
- package/lib/Player/ItemManager.d.ts +21 -0
- package/lib/Player/ItemManager.js +22 -1
- package/lib/Player/ItemManager.js.map +1 -1
- package/lib/Player/MoveManager.js +27 -14
- package/lib/Player/MoveManager.js.map +1 -1
- package/lib/Player/ParameterManager.d.ts +2 -1
- package/lib/Player/ParameterManager.js +15 -4
- package/lib/Player/ParameterManager.js.map +1 -1
- package/lib/Player/Player.d.ts +150 -54
- package/lib/Player/Player.js +142 -58
- package/lib/Player/Player.js.map +1 -1
- package/lib/Player/SkillManager.d.ts +13 -8
- package/lib/Player/SkillManager.js +14 -12
- package/lib/Player/SkillManager.js.map +1 -1
- package/lib/Player/StateManager.d.ts +11 -6
- package/lib/Player/StateManager.js +21 -6
- package/lib/Player/StateManager.js.map +1 -1
- package/lib/RpgServer.d.ts +42 -2
- package/lib/Scenes/Map.d.ts +3 -0
- package/lib/Scenes/Map.js +4 -0
- package/lib/Scenes/Map.js.map +1 -1
- package/lib/decorators/event.d.ts +1 -1
- package/lib/decorators/event.js +2 -1
- package/lib/decorators/event.js.map +1 -1
- package/lib/decorators/map.d.ts +5 -2
- package/lib/decorators/map.js.map +1 -1
- package/lib/express/server.js +5 -1
- package/lib/express/server.js.map +1 -1
- package/lib/index.d.ts +3 -1
- package/lib/index.js +3 -1
- package/lib/index.js.map +1 -1
- package/lib/models/Item.d.ts +1 -1
- package/lib/server.d.ts +3 -6
- package/lib/server.js +9 -8
- package/lib/server.js.map +1 -1
- package/package.json +8 -7
- package/src/Game/EventManager.ts +110 -0
- package/src/Game/Map.ts +37 -69
- package/src/Gui/MenuGui.ts +3 -3
- package/src/Player/BattleManager.ts +10 -9
- package/src/Player/ClassManager.ts +13 -7
- package/src/Player/EffectManager.ts +6 -5
- package/src/Player/ElementManager.ts +4 -1
- package/src/Player/ItemManager.ts +47 -26
- package/src/Player/MoveManager.ts +35 -15
- package/src/Player/ParameterManager.ts +19 -8
- package/src/Player/Player.ts +170 -57
- package/src/Player/SkillManager.ts +23 -21
- package/src/Player/StateManager.ts +30 -11
- package/src/RpgServer.ts +42 -2
- package/src/Scenes/Map.ts +4 -0
- package/src/decorators/event.ts +2 -1
- package/src/decorators/map.ts +5 -2
- package/src/express/server.ts +9 -3
- package/src/index.ts +10 -8
- package/src/models/Item.ts +1 -1
- 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,
|
|
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 {
|
|
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
|
-
|
|
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
|
-
|
|
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
|
package/lib/Game/Map.js.map
CHANGED
|
@@ -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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"}
|
package/lib/Gui/MenuGui.js
CHANGED
|
@@ -7,11 +7,11 @@ export class MenuGui extends Gui {
|
|
|
7
7
|
open() {
|
|
8
8
|
this.on('useItem', (id) => {
|
|
9
9
|
try {
|
|
10
|
-
|
|
10
|
+
this.player.useItem(id);
|
|
11
11
|
this.player.syncChanges();
|
|
12
12
|
}
|
|
13
13
|
catch (err) {
|
|
14
|
-
|
|
14
|
+
this.player.showNotification(err.msg);
|
|
15
15
|
}
|
|
16
16
|
});
|
|
17
17
|
return super.open('', {
|
package/lib/Gui/MenuGui.js.map
CHANGED
|
@@ -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;
|
|
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 `
|
|
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(
|
|
14
|
+
* player.applyDamage(attackerPlayer) // returns { damage: number }
|
|
15
15
|
* ```
|
|
16
16
|
*
|
|
17
17
|
* @title Apply Damage
|
|
18
|
-
* @method player.applyDamage(
|
|
19
|
-
* @param {RpgPlayer}
|
|
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(
|
|
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 `
|
|
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(
|
|
16
|
+
* player.applyDamage(attackerPlayer) // returns { damage: number }
|
|
17
17
|
* ```
|
|
18
18
|
*
|
|
19
19
|
* @title Apply Damage
|
|
20
|
-
* @method player.applyDamage(
|
|
21
|
-
* @param {RpgPlayer}
|
|
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(
|
|
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(
|
|
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(
|
|
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,
|
|
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:
|
|
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:
|
|
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;
|