@rpgjs/server 4.2.2 → 5.0.0-alpha.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.
- package/{lib → dist}/Gui/DialogGui.d.ts +1 -2
- package/{lib → dist}/Gui/Gui.d.ts +1 -2
- package/dist/Player/BattleManager.d.ts +22 -0
- package/dist/Player/ClassManager.d.ts +18 -0
- package/dist/Player/Event.d.ts +0 -0
- package/dist/Player/ItemManager.d.ts +17 -0
- package/dist/Player/MoveManager.d.ts +177 -0
- package/dist/Player/ParameterManager.d.ts +42 -0
- package/dist/Player/Player.d.ts +73 -0
- package/dist/Player/SkillManager.d.ts +23 -0
- package/dist/Player/StateManager.d.ts +39 -0
- package/{lib → dist}/RpgServer.d.ts +34 -17
- package/dist/RpgServerEngine.d.ts +5 -0
- package/dist/core/context.d.ts +2 -0
- package/dist/core/inject.d.ts +5 -0
- package/dist/core/setup.d.ts +6 -0
- package/dist/index.d.ts +9 -0
- package/dist/index.js +29673 -0
- package/dist/index.js.map +1 -0
- package/dist/module.d.ts +2 -0
- package/dist/rooms/lobby.d.ts +6 -0
- package/dist/rooms/map.d.ts +110 -0
- package/package.json +16 -38
- package/src/Gui/DialogGui.ts +3 -4
- package/src/Gui/Gui.ts +4 -6
- package/src/Player/BattleManager.ts +108 -99
- package/src/Player/ClassManager.ts +47 -46
- package/src/Player/ComponentManager.ts +26 -535
- package/src/Player/EffectManager.ts +44 -59
- package/src/Player/ElementManager.ts +70 -72
- package/src/Player/Event.ts +0 -0
- package/src/Player/GoldManager.ts +24 -6
- package/src/Player/GuiManager.ts +106 -97
- package/src/Player/ItemFixture.ts +22 -17
- package/src/Player/ItemManager.ts +234 -225
- package/src/Player/MoveManager.ts +1047 -457
- package/src/Player/ParameterManager.ts +59 -37
- package/src/Player/Player.ts +272 -1058
- package/src/Player/SkillManager.ts +146 -137
- package/src/Player/StateManager.ts +124 -98
- package/src/Player/VariableManager.ts +23 -3
- package/src/RpgServer.ts +38 -14
- package/src/RpgServerEngine.ts +7 -0
- package/src/core/context.ts +3 -0
- package/src/core/inject.ts +17 -0
- package/src/core/setup.ts +20 -0
- package/src/index.ts +9 -31
- package/src/module.ts +32 -0
- package/src/presets/index.ts +1 -3
- package/src/rooms/lobby.ts +24 -0
- package/src/rooms/map.ts +311 -0
- package/tsconfig.json +26 -23
- package/vite.config.ts +21 -0
- package/CHANGELOG.md +0 -163
- package/LICENSE +0 -19
- package/browser/manifest.json +0 -7
- package/browser/rpg.server.js +0 -22372
- package/browser/rpg.server.umd.cjs +0 -22403
- package/lib/Game/EventManager.d.ts +0 -54
- package/lib/Game/EventManager.js +0 -107
- package/lib/Game/EventManager.js.map +0 -1
- package/lib/Game/Map.d.ts +0 -191
- package/lib/Game/Map.js +0 -414
- package/lib/Game/Map.js.map +0 -1
- package/lib/Game/WorldMaps.d.ts +0 -17
- package/lib/Game/WorldMaps.js +0 -28
- package/lib/Game/WorldMaps.js.map +0 -1
- package/lib/Gui/DialogGui.js +0 -57
- package/lib/Gui/DialogGui.js.map +0 -1
- package/lib/Gui/Gui.js +0 -37
- package/lib/Gui/Gui.js.map +0 -1
- package/lib/Gui/MenuGui.js +0 -23
- package/lib/Gui/MenuGui.js.map +0 -1
- package/lib/Gui/NotificationGui.js +0 -8
- package/lib/Gui/NotificationGui.js.map +0 -1
- package/lib/Gui/ShopGui.js +0 -40
- package/lib/Gui/ShopGui.js.map +0 -1
- package/lib/Gui/index.js +0 -7
- package/lib/Gui/index.js.map +0 -1
- package/lib/Interfaces/Gui.d.ts +0 -4
- package/lib/Interfaces/Gui.js +0 -2
- package/lib/Interfaces/Gui.js.map +0 -1
- package/lib/Interfaces/StateStore.d.ts +0 -5
- package/lib/Interfaces/StateStore.js +0 -2
- package/lib/Interfaces/StateStore.js.map +0 -1
- package/lib/MatchMaker.d.ts +0 -24
- package/lib/MatchMaker.js +0 -42
- package/lib/MatchMaker.js.map +0 -1
- package/lib/Monitor/index.d.ts +0 -17
- package/lib/Monitor/index.js +0 -72
- package/lib/Monitor/index.js.map +0 -1
- package/lib/Player/BattleManager.d.ts +0 -36
- package/lib/Player/BattleManager.js +0 -101
- package/lib/Player/BattleManager.js.map +0 -1
- package/lib/Player/ClassManager.d.ts +0 -47
- package/lib/Player/ClassManager.js +0 -65
- package/lib/Player/ClassManager.js.map +0 -1
- package/lib/Player/ComponentManager.d.ts +0 -397
- package/lib/Player/ComponentManager.js +0 -505
- package/lib/Player/ComponentManager.js.map +0 -1
- package/lib/Player/EffectManager.d.ts +0 -46
- package/lib/Player/EffectManager.js +0 -75
- package/lib/Player/EffectManager.js.map +0 -1
- package/lib/Player/ElementManager.d.ts +0 -108
- package/lib/Player/ElementManager.js +0 -120
- package/lib/Player/ElementManager.js.map +0 -1
- package/lib/Player/GoldManager.d.ts +0 -17
- package/lib/Player/GoldManager.js +0 -27
- package/lib/Player/GoldManager.js.map +0 -1
- package/lib/Player/GuiManager.d.ts +0 -247
- package/lib/Player/GuiManager.js +0 -291
- package/lib/Player/GuiManager.js.map +0 -1
- package/lib/Player/ItemFixture.d.ts +0 -7
- package/lib/Player/ItemFixture.js +0 -19
- package/lib/Player/ItemFixture.js.map +0 -1
- package/lib/Player/ItemManager.d.ts +0 -331
- package/lib/Player/ItemManager.js +0 -475
- package/lib/Player/ItemManager.js.map +0 -1
- package/lib/Player/MoveManager.d.ts +0 -333
- package/lib/Player/MoveManager.js +0 -450
- package/lib/Player/MoveManager.js.map +0 -1
- package/lib/Player/ParameterManager.d.ts +0 -316
- package/lib/Player/ParameterManager.js +0 -408
- package/lib/Player/ParameterManager.js.map +0 -1
- package/lib/Player/Player.d.ts +0 -828
- package/lib/Player/Player.js +0 -927
- package/lib/Player/Player.js.map +0 -1
- package/lib/Player/SkillManager.d.ts +0 -163
- package/lib/Player/SkillManager.js +0 -223
- package/lib/Player/SkillManager.js.map +0 -1
- package/lib/Player/StateManager.d.ts +0 -185
- package/lib/Player/StateManager.js +0 -228
- package/lib/Player/StateManager.js.map +0 -1
- package/lib/Player/VariableManager.d.ts +0 -46
- package/lib/Player/VariableManager.js +0 -52
- package/lib/Player/VariableManager.js.map +0 -1
- package/lib/Query.d.ts +0 -127
- package/lib/Query.js +0 -159
- package/lib/Query.js.map +0 -1
- package/lib/RpgServer.js +0 -2
- package/lib/RpgServer.js.map +0 -1
- package/lib/Scenes/Map.d.ts +0 -136
- package/lib/Scenes/Map.js +0 -273
- package/lib/Scenes/Map.js.map +0 -1
- package/lib/decorators/event.d.ts +0 -43
- package/lib/decorators/event.js +0 -13
- package/lib/decorators/event.js.map +0 -1
- package/lib/decorators/map.d.ts +0 -178
- package/lib/decorators/map.js +0 -43
- package/lib/decorators/map.js.map +0 -1
- package/lib/entry-point.d.ts +0 -34
- package/lib/entry-point.js +0 -70
- package/lib/entry-point.js.map +0 -1
- package/lib/express/api.d.ts +0 -3
- package/lib/express/api.js +0 -105
- package/lib/express/api.js.map +0 -1
- package/lib/express/errors/NotAuthorized.d.ts +0 -4
- package/lib/express/errors/NotAuthorized.js +0 -7
- package/lib/express/errors/NotAuthorized.js.map +0 -1
- package/lib/express/errors/NotFound.d.ts +0 -4
- package/lib/express/errors/NotFound.js +0 -7
- package/lib/express/errors/NotFound.js.map +0 -1
- package/lib/express/server.d.ts +0 -16
- package/lib/express/server.js +0 -65
- package/lib/express/server.js.map +0 -1
- package/lib/index.d.ts +0 -20
- package/lib/index.js +0 -19
- package/lib/index.js.map +0 -1
- package/lib/inject.d.ts +0 -22
- package/lib/inject.js +0 -29
- package/lib/inject.js.map +0 -1
- package/lib/logs/index.js +0 -6
- package/lib/logs/index.js.map +0 -1
- package/lib/logs/item.js +0 -34
- package/lib/logs/item.js.map +0 -1
- package/lib/logs/log.js +0 -7
- package/lib/logs/log.js.map +0 -1
- package/lib/logs/skill.js +0 -19
- package/lib/logs/skill.js.map +0 -1
- package/lib/logs/state.js +0 -13
- package/lib/logs/state.js.map +0 -1
- package/lib/models/Item.d.ts +0 -10
- package/lib/models/Item.js +0 -2
- package/lib/models/Item.js.map +0 -1
- package/lib/presets/index.js +0 -65
- package/lib/presets/index.js.map +0 -1
- package/lib/server.d.ts +0 -137
- package/lib/server.js +0 -443
- package/lib/server.js.map +0 -1
- package/rpg.toml +0 -14
- package/src/Game/EventManager.ts +0 -125
- package/src/Game/Map.ts +0 -495
- package/src/Game/WorldMaps.ts +0 -45
- package/src/Interfaces/Gui.ts +0 -4
- package/src/Interfaces/StateStore.ts +0 -5
- package/src/MatchMaker.ts +0 -65
- package/src/Monitor/index.ts +0 -78
- package/src/Query.ts +0 -172
- package/src/Scenes/Map.ts +0 -310
- package/src/decorators/event.ts +0 -58
- package/src/decorators/map.ts +0 -226
- package/src/entry-point.ts +0 -111
- package/src/express/api.ts +0 -118
- package/src/express/errors/NotAuthorized.ts +0 -6
- package/src/express/errors/NotFound.ts +0 -6
- package/src/express/server.ts +0 -87
- package/src/inject.ts +0 -33
- package/src/models/Item.ts +0 -11
- package/src/server.ts +0 -459
- /package/{lib → dist}/Gui/MenuGui.d.ts +0 -0
- /package/{lib → dist}/Gui/NotificationGui.d.ts +0 -0
- /package/{lib → dist}/Gui/ShopGui.d.ts +0 -0
- /package/{lib → dist}/Gui/index.d.ts +0 -0
- /package/{lib → dist}/logs/index.d.ts +0 -0
- /package/{lib → dist}/logs/item.d.ts +0 -0
- /package/{lib → dist}/logs/log.d.ts +0 -0
- /package/{lib → dist}/logs/skill.d.ts +0 -0
- /package/{lib → dist}/logs/state.d.ts +0 -0
- /package/{lib → dist}/presets/index.d.ts +0 -0
|
@@ -1,15 +1,48 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
MAXHP,
|
|
4
|
-
MAXSP,
|
|
5
|
-
} from '../presets'
|
|
1
|
+
import { Constructor, isString, RpgCommonPlayer } from "@rpgjs/common";
|
|
2
|
+
import { MAXHP, MAXSP } from "../presets";
|
|
6
3
|
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
4
|
+
export interface IWithParameterManager {
|
|
5
|
+
parameters: Map<string, any>
|
|
6
|
+
hp: number
|
|
7
|
+
sp: number
|
|
8
|
+
exp: number
|
|
9
|
+
level: number
|
|
10
|
+
expForNextlevel: number
|
|
11
|
+
param: { [key: string]: number }
|
|
12
|
+
paramsModifier: { [key: string]: { value?: number, rate?: number } }
|
|
13
|
+
}
|
|
10
14
|
|
|
11
|
-
|
|
15
|
+
interface PlayerWithMixins extends RpgCommonPlayer {
|
|
16
|
+
databaseById?(id: string): any;
|
|
17
|
+
}
|
|
12
18
|
|
|
19
|
+
/**
|
|
20
|
+
* Mixin that adds parameter management functionality to a player class.
|
|
21
|
+
*
|
|
22
|
+
* This mixin provides comprehensive parameter management including:
|
|
23
|
+
* - Health Points (HP) and Skill Points (SP) management
|
|
24
|
+
* - Experience and level progression system
|
|
25
|
+
* - Custom parameter creation and modification
|
|
26
|
+
* - Parameter modifiers for temporary stat changes
|
|
27
|
+
*
|
|
28
|
+
* @template TBase - The base class constructor type
|
|
29
|
+
* @param Base - The base class to extend
|
|
30
|
+
* @returns A new class that extends the base with parameter management capabilities
|
|
31
|
+
*
|
|
32
|
+
* @example
|
|
33
|
+
* ```ts
|
|
34
|
+
* class MyPlayer extends WithParameterManager(BasePlayer) {
|
|
35
|
+
* constructor() {
|
|
36
|
+
* super();
|
|
37
|
+
* this.addParameter('strength', { start: 10, end: 100 });
|
|
38
|
+
* }
|
|
39
|
+
* }
|
|
40
|
+
* ```
|
|
41
|
+
*/
|
|
42
|
+
export function WithParameterManager<TBase extends Constructor<RpgCommonPlayer>>(
|
|
43
|
+
Base: TBase
|
|
44
|
+
): TBase & Constructor<IWithParameterManager> {
|
|
45
|
+
return class extends Base implements IWithParameterManager {
|
|
13
46
|
private _paramsModifier: {
|
|
14
47
|
[key: string]: {
|
|
15
48
|
value?: number,
|
|
@@ -20,12 +53,7 @@ export class ParameterManager {
|
|
|
20
53
|
private _parameters: Map<string, {
|
|
21
54
|
start: number,
|
|
22
55
|
end: number
|
|
23
|
-
}>
|
|
24
|
-
|
|
25
|
-
private _hp = 0
|
|
26
|
-
private _sp = 0
|
|
27
|
-
private _exp: number = 0
|
|
28
|
-
private _level: number = 0
|
|
56
|
+
}> = new Map()
|
|
29
57
|
|
|
30
58
|
/**
|
|
31
59
|
* ```ts
|
|
@@ -99,11 +127,11 @@ export class ParameterManager {
|
|
|
99
127
|
this['execMethod']('onDead')
|
|
100
128
|
val = 0
|
|
101
129
|
}
|
|
102
|
-
this._hp
|
|
130
|
+
this._hp.set(val)
|
|
103
131
|
}
|
|
104
132
|
|
|
105
133
|
get hp(): number {
|
|
106
|
-
return this._hp
|
|
134
|
+
return this._hp()
|
|
107
135
|
}
|
|
108
136
|
|
|
109
137
|
/**
|
|
@@ -123,11 +151,11 @@ export class ParameterManager {
|
|
|
123
151
|
if (val > this.param[MAXSP]) {
|
|
124
152
|
val = this.param[MAXSP]
|
|
125
153
|
}
|
|
126
|
-
this._sp
|
|
154
|
+
this._sp.set(val)
|
|
127
155
|
}
|
|
128
156
|
|
|
129
157
|
get sp(): number {
|
|
130
|
-
return this._sp
|
|
158
|
+
return this._sp()
|
|
131
159
|
}
|
|
132
160
|
|
|
133
161
|
/**
|
|
@@ -151,16 +179,16 @@ export class ParameterManager {
|
|
|
151
179
|
* @memberof ParameterManager
|
|
152
180
|
* */
|
|
153
181
|
set exp(val: number) {
|
|
154
|
-
this._exp
|
|
182
|
+
this._exp.set(val)
|
|
155
183
|
const lastLevel = this.level
|
|
156
|
-
while (this.expForNextlevel < this._exp) {
|
|
184
|
+
while (this.expForNextlevel < this._exp()) {
|
|
157
185
|
this.level += 1
|
|
158
186
|
}
|
|
159
187
|
//const hasNewLevel = player.level - lastLevel
|
|
160
188
|
}
|
|
161
189
|
|
|
162
190
|
get exp(): number {
|
|
163
|
-
return this._exp
|
|
191
|
+
return this._exp()
|
|
164
192
|
}
|
|
165
193
|
|
|
166
194
|
/**
|
|
@@ -184,13 +212,14 @@ export class ParameterManager {
|
|
|
184
212
|
* @memberof ParameterManager
|
|
185
213
|
* */
|
|
186
214
|
set level(val: number) {
|
|
187
|
-
const lastLevel = this._level
|
|
215
|
+
const lastLevel = this._level()
|
|
188
216
|
if (this.finalLevel && val > this.finalLevel) {
|
|
189
217
|
val = this.finalLevel
|
|
190
218
|
}
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
219
|
+
const currentClass = this._class && this._class()
|
|
220
|
+
if (currentClass && 'skillsToLearn' in currentClass && Array.isArray(currentClass.skillsToLearn)) {
|
|
221
|
+
for (let i = this._level() ; i <= val; i++) {
|
|
222
|
+
for (let skill of currentClass.skillsToLearn as any[]) {
|
|
194
223
|
if (skill.level == i) {
|
|
195
224
|
this['learnSkill'](skill.skill)
|
|
196
225
|
}
|
|
@@ -201,11 +230,11 @@ export class ParameterManager {
|
|
|
201
230
|
if (hasNewLevel > 0) {
|
|
202
231
|
this['execMethod']('onLevelUp', <any>[hasNewLevel])
|
|
203
232
|
}
|
|
204
|
-
this._level
|
|
233
|
+
this._level.set(val)
|
|
205
234
|
}
|
|
206
235
|
|
|
207
236
|
get level(): number {
|
|
208
|
-
return this._level
|
|
237
|
+
return this._level()
|
|
209
238
|
}
|
|
210
239
|
|
|
211
240
|
/**
|
|
@@ -264,7 +293,7 @@ export class ParameterManager {
|
|
|
264
293
|
changeParam(prop)
|
|
265
294
|
return
|
|
266
295
|
}
|
|
267
|
-
for (let el of this[prop]) {
|
|
296
|
+
for (let el of this[prop]()) {
|
|
268
297
|
if (!el.paramsModifier) continue
|
|
269
298
|
changeParam(el.paramsModifier)
|
|
270
299
|
}
|
|
@@ -342,7 +371,6 @@ export class ParameterManager {
|
|
|
342
371
|
}
|
|
343
372
|
}) {
|
|
344
373
|
this._paramsModifier = val
|
|
345
|
-
this.changeRoomState('param')
|
|
346
374
|
}
|
|
347
375
|
|
|
348
376
|
get parameters() {
|
|
@@ -419,7 +447,6 @@ export class ParameterManager {
|
|
|
419
447
|
else if (name == MAXSP && this.sp > maxSp) {
|
|
420
448
|
this.sp = maxSp
|
|
421
449
|
}
|
|
422
|
-
this.changeRoomState('param.' + name)
|
|
423
450
|
}
|
|
424
451
|
|
|
425
452
|
/**
|
|
@@ -470,10 +497,5 @@ export class ParameterManager {
|
|
|
470
497
|
allRecovery(): void {
|
|
471
498
|
this.recovery({ hp: 1, sp: 1 })
|
|
472
499
|
}
|
|
473
|
-
}
|
|
474
|
-
|
|
475
|
-
export interface ParameterManager {
|
|
476
|
-
_class,
|
|
477
|
-
$schema,
|
|
478
|
-
changeRoomState(key: string): void
|
|
500
|
+
}
|
|
479
501
|
}
|