@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.
Files changed (219) hide show
  1. package/{lib → dist}/Gui/DialogGui.d.ts +1 -2
  2. package/{lib → dist}/Gui/Gui.d.ts +1 -2
  3. package/dist/Player/BattleManager.d.ts +22 -0
  4. package/dist/Player/ClassManager.d.ts +18 -0
  5. package/dist/Player/Event.d.ts +0 -0
  6. package/dist/Player/ItemManager.d.ts +17 -0
  7. package/dist/Player/MoveManager.d.ts +177 -0
  8. package/dist/Player/ParameterManager.d.ts +42 -0
  9. package/dist/Player/Player.d.ts +73 -0
  10. package/dist/Player/SkillManager.d.ts +23 -0
  11. package/dist/Player/StateManager.d.ts +39 -0
  12. package/{lib → dist}/RpgServer.d.ts +34 -17
  13. package/dist/RpgServerEngine.d.ts +5 -0
  14. package/dist/core/context.d.ts +2 -0
  15. package/dist/core/inject.d.ts +5 -0
  16. package/dist/core/setup.d.ts +6 -0
  17. package/dist/index.d.ts +9 -0
  18. package/dist/index.js +29673 -0
  19. package/dist/index.js.map +1 -0
  20. package/dist/module.d.ts +2 -0
  21. package/dist/rooms/lobby.d.ts +6 -0
  22. package/dist/rooms/map.d.ts +110 -0
  23. package/package.json +16 -38
  24. package/src/Gui/DialogGui.ts +3 -4
  25. package/src/Gui/Gui.ts +4 -6
  26. package/src/Player/BattleManager.ts +108 -99
  27. package/src/Player/ClassManager.ts +47 -46
  28. package/src/Player/ComponentManager.ts +26 -535
  29. package/src/Player/EffectManager.ts +44 -59
  30. package/src/Player/ElementManager.ts +70 -72
  31. package/src/Player/Event.ts +0 -0
  32. package/src/Player/GoldManager.ts +24 -6
  33. package/src/Player/GuiManager.ts +106 -97
  34. package/src/Player/ItemFixture.ts +22 -17
  35. package/src/Player/ItemManager.ts +234 -225
  36. package/src/Player/MoveManager.ts +1047 -457
  37. package/src/Player/ParameterManager.ts +59 -37
  38. package/src/Player/Player.ts +272 -1058
  39. package/src/Player/SkillManager.ts +146 -137
  40. package/src/Player/StateManager.ts +124 -98
  41. package/src/Player/VariableManager.ts +23 -3
  42. package/src/RpgServer.ts +38 -14
  43. package/src/RpgServerEngine.ts +7 -0
  44. package/src/core/context.ts +3 -0
  45. package/src/core/inject.ts +17 -0
  46. package/src/core/setup.ts +20 -0
  47. package/src/index.ts +9 -31
  48. package/src/module.ts +32 -0
  49. package/src/presets/index.ts +1 -3
  50. package/src/rooms/lobby.ts +24 -0
  51. package/src/rooms/map.ts +311 -0
  52. package/tsconfig.json +26 -23
  53. package/vite.config.ts +21 -0
  54. package/CHANGELOG.md +0 -163
  55. package/LICENSE +0 -19
  56. package/browser/manifest.json +0 -7
  57. package/browser/rpg.server.js +0 -22372
  58. package/browser/rpg.server.umd.cjs +0 -22403
  59. package/lib/Game/EventManager.d.ts +0 -54
  60. package/lib/Game/EventManager.js +0 -107
  61. package/lib/Game/EventManager.js.map +0 -1
  62. package/lib/Game/Map.d.ts +0 -191
  63. package/lib/Game/Map.js +0 -414
  64. package/lib/Game/Map.js.map +0 -1
  65. package/lib/Game/WorldMaps.d.ts +0 -17
  66. package/lib/Game/WorldMaps.js +0 -28
  67. package/lib/Game/WorldMaps.js.map +0 -1
  68. package/lib/Gui/DialogGui.js +0 -57
  69. package/lib/Gui/DialogGui.js.map +0 -1
  70. package/lib/Gui/Gui.js +0 -37
  71. package/lib/Gui/Gui.js.map +0 -1
  72. package/lib/Gui/MenuGui.js +0 -23
  73. package/lib/Gui/MenuGui.js.map +0 -1
  74. package/lib/Gui/NotificationGui.js +0 -8
  75. package/lib/Gui/NotificationGui.js.map +0 -1
  76. package/lib/Gui/ShopGui.js +0 -40
  77. package/lib/Gui/ShopGui.js.map +0 -1
  78. package/lib/Gui/index.js +0 -7
  79. package/lib/Gui/index.js.map +0 -1
  80. package/lib/Interfaces/Gui.d.ts +0 -4
  81. package/lib/Interfaces/Gui.js +0 -2
  82. package/lib/Interfaces/Gui.js.map +0 -1
  83. package/lib/Interfaces/StateStore.d.ts +0 -5
  84. package/lib/Interfaces/StateStore.js +0 -2
  85. package/lib/Interfaces/StateStore.js.map +0 -1
  86. package/lib/MatchMaker.d.ts +0 -24
  87. package/lib/MatchMaker.js +0 -42
  88. package/lib/MatchMaker.js.map +0 -1
  89. package/lib/Monitor/index.d.ts +0 -17
  90. package/lib/Monitor/index.js +0 -72
  91. package/lib/Monitor/index.js.map +0 -1
  92. package/lib/Player/BattleManager.d.ts +0 -36
  93. package/lib/Player/BattleManager.js +0 -101
  94. package/lib/Player/BattleManager.js.map +0 -1
  95. package/lib/Player/ClassManager.d.ts +0 -47
  96. package/lib/Player/ClassManager.js +0 -65
  97. package/lib/Player/ClassManager.js.map +0 -1
  98. package/lib/Player/ComponentManager.d.ts +0 -397
  99. package/lib/Player/ComponentManager.js +0 -505
  100. package/lib/Player/ComponentManager.js.map +0 -1
  101. package/lib/Player/EffectManager.d.ts +0 -46
  102. package/lib/Player/EffectManager.js +0 -75
  103. package/lib/Player/EffectManager.js.map +0 -1
  104. package/lib/Player/ElementManager.d.ts +0 -108
  105. package/lib/Player/ElementManager.js +0 -120
  106. package/lib/Player/ElementManager.js.map +0 -1
  107. package/lib/Player/GoldManager.d.ts +0 -17
  108. package/lib/Player/GoldManager.js +0 -27
  109. package/lib/Player/GoldManager.js.map +0 -1
  110. package/lib/Player/GuiManager.d.ts +0 -247
  111. package/lib/Player/GuiManager.js +0 -291
  112. package/lib/Player/GuiManager.js.map +0 -1
  113. package/lib/Player/ItemFixture.d.ts +0 -7
  114. package/lib/Player/ItemFixture.js +0 -19
  115. package/lib/Player/ItemFixture.js.map +0 -1
  116. package/lib/Player/ItemManager.d.ts +0 -331
  117. package/lib/Player/ItemManager.js +0 -475
  118. package/lib/Player/ItemManager.js.map +0 -1
  119. package/lib/Player/MoveManager.d.ts +0 -333
  120. package/lib/Player/MoveManager.js +0 -450
  121. package/lib/Player/MoveManager.js.map +0 -1
  122. package/lib/Player/ParameterManager.d.ts +0 -316
  123. package/lib/Player/ParameterManager.js +0 -408
  124. package/lib/Player/ParameterManager.js.map +0 -1
  125. package/lib/Player/Player.d.ts +0 -828
  126. package/lib/Player/Player.js +0 -927
  127. package/lib/Player/Player.js.map +0 -1
  128. package/lib/Player/SkillManager.d.ts +0 -163
  129. package/lib/Player/SkillManager.js +0 -223
  130. package/lib/Player/SkillManager.js.map +0 -1
  131. package/lib/Player/StateManager.d.ts +0 -185
  132. package/lib/Player/StateManager.js +0 -228
  133. package/lib/Player/StateManager.js.map +0 -1
  134. package/lib/Player/VariableManager.d.ts +0 -46
  135. package/lib/Player/VariableManager.js +0 -52
  136. package/lib/Player/VariableManager.js.map +0 -1
  137. package/lib/Query.d.ts +0 -127
  138. package/lib/Query.js +0 -159
  139. package/lib/Query.js.map +0 -1
  140. package/lib/RpgServer.js +0 -2
  141. package/lib/RpgServer.js.map +0 -1
  142. package/lib/Scenes/Map.d.ts +0 -136
  143. package/lib/Scenes/Map.js +0 -273
  144. package/lib/Scenes/Map.js.map +0 -1
  145. package/lib/decorators/event.d.ts +0 -43
  146. package/lib/decorators/event.js +0 -13
  147. package/lib/decorators/event.js.map +0 -1
  148. package/lib/decorators/map.d.ts +0 -178
  149. package/lib/decorators/map.js +0 -43
  150. package/lib/decorators/map.js.map +0 -1
  151. package/lib/entry-point.d.ts +0 -34
  152. package/lib/entry-point.js +0 -70
  153. package/lib/entry-point.js.map +0 -1
  154. package/lib/express/api.d.ts +0 -3
  155. package/lib/express/api.js +0 -105
  156. package/lib/express/api.js.map +0 -1
  157. package/lib/express/errors/NotAuthorized.d.ts +0 -4
  158. package/lib/express/errors/NotAuthorized.js +0 -7
  159. package/lib/express/errors/NotAuthorized.js.map +0 -1
  160. package/lib/express/errors/NotFound.d.ts +0 -4
  161. package/lib/express/errors/NotFound.js +0 -7
  162. package/lib/express/errors/NotFound.js.map +0 -1
  163. package/lib/express/server.d.ts +0 -16
  164. package/lib/express/server.js +0 -65
  165. package/lib/express/server.js.map +0 -1
  166. package/lib/index.d.ts +0 -20
  167. package/lib/index.js +0 -19
  168. package/lib/index.js.map +0 -1
  169. package/lib/inject.d.ts +0 -22
  170. package/lib/inject.js +0 -29
  171. package/lib/inject.js.map +0 -1
  172. package/lib/logs/index.js +0 -6
  173. package/lib/logs/index.js.map +0 -1
  174. package/lib/logs/item.js +0 -34
  175. package/lib/logs/item.js.map +0 -1
  176. package/lib/logs/log.js +0 -7
  177. package/lib/logs/log.js.map +0 -1
  178. package/lib/logs/skill.js +0 -19
  179. package/lib/logs/skill.js.map +0 -1
  180. package/lib/logs/state.js +0 -13
  181. package/lib/logs/state.js.map +0 -1
  182. package/lib/models/Item.d.ts +0 -10
  183. package/lib/models/Item.js +0 -2
  184. package/lib/models/Item.js.map +0 -1
  185. package/lib/presets/index.js +0 -65
  186. package/lib/presets/index.js.map +0 -1
  187. package/lib/server.d.ts +0 -137
  188. package/lib/server.js +0 -443
  189. package/lib/server.js.map +0 -1
  190. package/rpg.toml +0 -14
  191. package/src/Game/EventManager.ts +0 -125
  192. package/src/Game/Map.ts +0 -495
  193. package/src/Game/WorldMaps.ts +0 -45
  194. package/src/Interfaces/Gui.ts +0 -4
  195. package/src/Interfaces/StateStore.ts +0 -5
  196. package/src/MatchMaker.ts +0 -65
  197. package/src/Monitor/index.ts +0 -78
  198. package/src/Query.ts +0 -172
  199. package/src/Scenes/Map.ts +0 -310
  200. package/src/decorators/event.ts +0 -58
  201. package/src/decorators/map.ts +0 -226
  202. package/src/entry-point.ts +0 -111
  203. package/src/express/api.ts +0 -118
  204. package/src/express/errors/NotAuthorized.ts +0 -6
  205. package/src/express/errors/NotFound.ts +0 -6
  206. package/src/express/server.ts +0 -87
  207. package/src/inject.ts +0 -33
  208. package/src/models/Item.ts +0 -11
  209. package/src/server.ts +0 -459
  210. /package/{lib → dist}/Gui/MenuGui.d.ts +0 -0
  211. /package/{lib → dist}/Gui/NotificationGui.d.ts +0 -0
  212. /package/{lib → dist}/Gui/ShopGui.d.ts +0 -0
  213. /package/{lib → dist}/Gui/index.d.ts +0 -0
  214. /package/{lib → dist}/logs/index.d.ts +0 -0
  215. /package/{lib → dist}/logs/item.d.ts +0 -0
  216. /package/{lib → dist}/logs/log.d.ts +0 -0
  217. /package/{lib → dist}/logs/skill.d.ts +0 -0
  218. /package/{lib → dist}/logs/state.d.ts +0 -0
  219. /package/{lib → dist}/presets/index.d.ts +0 -0
package/lib/Gui/index.js DELETED
@@ -1,7 +0,0 @@
1
- import { Gui } from './Gui.js';
2
- import { DialogGui } from './DialogGui.js';
3
- import { MenuGui } from './MenuGui.js';
4
- import { ShopGui } from './ShopGui.js';
5
- import { NotificationGui } from './NotificationGui.js';
6
- export { Gui, DialogGui, MenuGui, ShopGui, NotificationGui };
7
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/Gui/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,OAAO,CAAA;AAC3B,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AACvC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AACnC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AACnC,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;AAEnD,OAAO,EACH,GAAG,EACH,SAAS,EACT,OAAO,EACP,OAAO,EACP,eAAe,EAClB,CAAA"}
@@ -1,4 +0,0 @@
1
- export interface IGui {
2
- open(...any: any[]): Promise<any>;
3
- close?(): any;
4
- }
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=Gui.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Gui.js","sourceRoot":"","sources":["../../src/Interfaces/Gui.ts"],"names":[],"mappings":""}
@@ -1,5 +0,0 @@
1
- export interface IStoreState {
2
- connect(): Promise<any>;
3
- get(key: string): Promise<string | null>;
4
- set(key: string, val: string): Promise<any>;
5
- }
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=StateStore.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"StateStore.js","sourceRoot":"","sources":["../../src/Interfaces/StateStore.ts"],"names":[],"mappings":""}
@@ -1,24 +0,0 @@
1
- import { RpgPlayer } from './Player/Player';
2
- interface MatchMakerPayload {
3
- playerId: string;
4
- mapName: string;
5
- }
6
- export interface MatchMakerResponse {
7
- url: string;
8
- port: number;
9
- serverId: string;
10
- }
11
- export interface MatchMakerOption {
12
- endpoint?: string;
13
- headers?: any;
14
- callback?: (payload: MatchMakerPayload) => MatchMakerResponse;
15
- }
16
- export declare class RpgMatchMaker {
17
- private options;
18
- private endpoint?;
19
- private headers?;
20
- private callback?;
21
- constructor(options: MatchMakerOption);
22
- getServer(player: RpgPlayer): Promise<MatchMakerResponse | null>;
23
- }
24
- export {};
package/lib/MatchMaker.js DELETED
@@ -1,42 +0,0 @@
1
- import axios from 'axios';
2
- import { Utils } from '@rpgjs/common';
3
- import { inject } from './inject.js';
4
- import { RpgServerEngine } from './server.js';
5
- export class RpgMatchMaker {
6
- constructor(options) {
7
- this.options = options;
8
- this.endpoint = options.endpoint;
9
- this.headers = options.headers;
10
- this.callback = options.callback;
11
- }
12
- async getServer(player) {
13
- const currentServerId = inject(RpgServerEngine).serverId;
14
- const payload = {
15
- playerId: player.id,
16
- mapName: player.map
17
- };
18
- let res = {};
19
- if (this.callback) {
20
- res = this.callback(payload);
21
- if (Utils.isPromise(res)) {
22
- res = await res;
23
- }
24
- }
25
- if (this.endpoint) {
26
- try {
27
- res = await axios.post(this.endpoint, payload, {
28
- headers: this.headers
29
- }).then(res => res.data);
30
- }
31
- catch (err) {
32
- console.log('There is a problem with the MatchMaker webservice.');
33
- throw err;
34
- }
35
- }
36
- if (currentServerId == res.serverId) {
37
- return null;
38
- }
39
- return res;
40
- }
41
- }
42
- //# sourceMappingURL=MatchMaker.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"MatchMaker.js","sourceRoot":"","sources":["../src/MatchMaker.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAA;AAErC,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAA;AACjC,OAAO,EAAE,eAAe,EAAE,MAAM,UAAU,CAAA;AAmB1C,MAAM,OAAO,aAAa;IAKtB,YAAoB,OAAyB;QAAzB,YAAO,GAAP,OAAO,CAAkB;QACzC,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAA;QAChC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAA;QAC9B,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAA;IACpC,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,MAAiB;QAC7B,MAAM,eAAe,GAAG,MAAM,CAAC,eAAe,CAAC,CAAC,QAAQ,CAAA;QACxD,MAAM,OAAO,GAAsB;YAC/B,QAAQ,EAAE,MAAM,CAAC,EAAE;YACnB,OAAO,EAAE,MAAM,CAAC,GAAG;SACtB,CAAA;QACD,IAAI,GAAG,GAAG,EAAwB,CAAA;QAClC,IAAI,IAAI,CAAC,QAAQ,EAAE;YACf,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAA;YAC5B,IAAI,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE;gBACtB,GAAG,GAAG,MAAM,GAAG,CAAA;aAClB;SACJ;QACD,IAAI,IAAI,CAAC,QAAQ,EAAE;YACf,IAAI;gBACA,GAAG,GAAG,MAAM,KAAK,CAAC,IAAI,CAAqB,IAAI,CAAC,QAAQ,EAAE,OAAO,EAAE;oBAC/D,OAAO,EAAE,IAAI,CAAC,OAAO;iBACxB,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;aAC3B;YACD,OAAO,GAAG,EAAE;gBACR,OAAO,CAAC,GAAG,CAAC,oDAAoD,CAAC,CAAA;gBACjE,MAAM,GAAG,CAAA;aACZ;SACJ;QACD,IAAI,eAAe,IAAI,GAAG,CAAC,QAAQ,EAAE;YACjC,OAAO,IAAI,CAAA;SACd;QACD,OAAO,GAAG,CAAA;IACd,CAAC;CACJ"}
@@ -1,17 +0,0 @@
1
- import { EventEmitter } from '@rpgjs/common';
2
- declare class Monitor extends EventEmitter {
3
- private monitors;
4
- private lastTime;
5
- loopMs: any;
6
- totalConnected: number;
7
- get status(): {
8
- loop: any;
9
- totalConnected: number;
10
- };
11
- getStatusOf(id: any): any;
12
- update(server: any): void;
13
- addMonitor(socket: any): void;
14
- removeMonitor(id: any): void;
15
- }
16
- declare const _default: Monitor;
17
- export default _default;
@@ -1,72 +0,0 @@
1
- import { EventEmitter } from '@rpgjs/common';
2
- class Monitor extends EventEmitter {
3
- constructor() {
4
- super(...arguments);
5
- this.monitors = new Map();
6
- this.totalConnected = 0;
7
- }
8
- get status() {
9
- return {
10
- loop: this.loopMs,
11
- totalConnected: this.totalConnected
12
- };
13
- }
14
- getStatusOf(id) {
15
- return this.monitors.get(id);
16
- }
17
- update(server) {
18
- const { scheduler, options } = server;
19
- if (this.lastTime) {
20
- const hrtime = process.hrtime(this.lastTime);
21
- this.loopMs = hrtime[1] / 1e6;
22
- }
23
- const period = scheduler.options.period;
24
- if (this.loopMs > period + 20) {
25
- const { stepRate } = options;
26
- console.warn('%s - Warning Low FPS. %s players connected. Game Loop: %s FPS', new Date(), this.totalConnected, Math.round(stepRate / (this.loopMs / period)));
27
- }
28
- this.lastTime = process.hrtime();
29
- }
30
- addMonitor(socket) {
31
- // TODO
32
- /*
33
- let bytesIn = 0
34
- let bytesOut = 0
35
- const update = () => {
36
- this.monitors.set(id, {
37
- bytesIn: bytesIn.toFixed(2),
38
- bytesOut: bytesOut.toFixed(2)
39
- })
40
- }
41
- const id = socket.id
42
- socket.use((packet, next) => {
43
- const size = ('42'+JSON.stringify(packet)).length
44
- bytesIn += size
45
- update()
46
- this.emit('update', this.monitors.get(id))
47
- next()
48
- })
49
- socket._emit = socket.emit.bind(socket)
50
- socket.emit = (name, data) => {
51
- let size = 0
52
- let obj = data
53
- if (name == 'worldUpdate') {
54
- obj = Object.assign({}, data)
55
- size += Buffer.byteLength(obj.dataBuffer)
56
- obj.dataBuffer = {_placeholder: true, num: 0}
57
- }
58
- size += `451-["${name},${JSON.stringify(obj)}"]`.length
59
- bytesOut += size
60
- update()
61
- return socket._emit(name, data)
62
- }
63
- */
64
- this.totalConnected++;
65
- }
66
- removeMonitor(id) {
67
- this.monitors.delete(id);
68
- this.totalConnected--;
69
- }
70
- }
71
- export default new Monitor();
72
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/Monitor/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAA;AAG5C,MAAM,OAAQ,SAAQ,YAAY;IAAlC;;QACY,aAAQ,GAAqB,IAAI,GAAG,EAAE,CAAA;QAG9C,mBAAc,GAAW,CAAC,CAAA;IAoE9B,CAAC;IAlEG,IAAI,MAAM;QACN,OAAO;YACH,IAAI,EAAE,IAAI,CAAC,MAAM;YACjB,cAAc,EAAE,IAAI,CAAC,cAAc;SACtC,CAAA;IACL,CAAC;IAED,WAAW,CAAC,EAAE;QACV,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;IAChC,CAAC;IAED,MAAM,CAAC,MAAM;QACT,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,GAAG,MAAM,CAAA;QACrC,IAAI,IAAI,CAAC,QAAQ,EAAE;YACf,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;YAC5C,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,GAAG,GAAG,CAAA;SAChC;QACD,MAAM,MAAM,GAAG,SAAS,CAAC,OAAO,CAAC,MAAM,CAAA;QACvC,IAAI,IAAI,CAAC,MAAM,GAAG,MAAM,GAAG,EAAE,EAAE;YAC3B,MAAM,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAA;YAC5B,OAAO,CAAC,IAAI,CAAC,+DAA+D,EAAE,IAAI,IAAI,EAAE,EAAE,IAAI,CAAC,cAAc,EAAE,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,CAAC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,CAAA;SAChK;QACD,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,MAAM,EAAE,CAAA;IACpC,CAAC;IAED,UAAU,CAAC,MAAM;QACb,OAAO;QACP;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;UA+BE;QACF,IAAI,CAAC,cAAc,EAAE,CAAA;IACzB,CAAC;IAED,aAAa,CAAC,EAAE;QACZ,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,CAAA;QACxB,IAAI,CAAC,cAAc,EAAE,CAAA;IACzB,CAAC;CACJ;AAED,eAAe,IAAI,OAAO,EAAE,CAAA"}
@@ -1,36 +0,0 @@
1
- import { ParameterManager } from './ParameterManager';
2
- import { RpgPlayer } from './Player';
3
- import { ElementManager } from './ElementManager';
4
- import { EffectManager } from './EffectManager';
5
- import { RpgServerEngine } from '../server';
6
- export declare class BattleManager {
7
- /**
8
- * Apply damage. Player will lose HP. the `attackerPlayer` parameter is the other player, the one who attacks.
9
- *
10
- * If you don't set the skill parameter, it will be a physical attack.
11
- * The attack formula is already defined but you can customize it in the server options
12
- *
13
- * ```ts
14
- * player.applyDamage(attackerPlayer) // returns { damage: number }
15
- * ```
16
- *
17
- * @title Apply Damage
18
- * @method player.applyDamage(attackerPlayer,skill)
19
- * @param {RpgPlayer} attackerPlayer The attacking player
20
- * @param {any} [skill]
21
- * @returns {object}
22
- * @memberof BattleManager
23
- * */
24
- applyDamage(attackerPlayer: RpgPlayer, skill?: any): {
25
- damage: number;
26
- critical: boolean;
27
- elementVulnerable: boolean;
28
- guard: boolean;
29
- superGuard: boolean;
30
- };
31
- getFormulas(name: string): any;
32
- }
33
- export interface BattleManager extends ParameterManager, ElementManager, EffectManager {
34
- name: string;
35
- server: RpgServerEngine;
36
- }
@@ -1,101 +0,0 @@
1
- import { Utils } from '@rpgjs/common';
2
- import { ParameterManager } from './ParameterManager.js';
3
- import { ATK, PDEF, SDEF } from '../presets/index.js';
4
- import { Effect } from '@rpgjs/database';
5
- import { ElementManager } from './ElementManager.js';
6
- import { EffectManager } from './EffectManager.js';
7
- const { applyMixins } = Utils;
8
- export class BattleManager {
9
- /**
10
- * Apply damage. Player will lose HP. the `attackerPlayer` parameter is the other player, the one who attacks.
11
- *
12
- * If you don't set the skill parameter, it will be a physical attack.
13
- * The attack formula is already defined but you can customize it in the server options
14
- *
15
- * ```ts
16
- * player.applyDamage(attackerPlayer) // returns { damage: number }
17
- * ```
18
- *
19
- * @title Apply Damage
20
- * @method player.applyDamage(attackerPlayer,skill)
21
- * @param {RpgPlayer} attackerPlayer The attacking player
22
- * @param {any} [skill]
23
- * @returns {object}
24
- * @memberof BattleManager
25
- * */
26
- applyDamage(attackerPlayer, skill) {
27
- const getParam = (player) => {
28
- const params = {};
29
- this.parameters.forEach((val, key) => {
30
- params[key] = player.param[key];
31
- });
32
- return {
33
- [ATK]: player.atk,
34
- [PDEF]: player.pdef,
35
- [SDEF]: player.sdef,
36
- ...params
37
- };
38
- };
39
- let damage = 0, fn;
40
- let critical = false;
41
- let guard = false;
42
- let superGuard = false;
43
- let elementVulnerable = false;
44
- const paramA = getParam(attackerPlayer);
45
- const paramB = getParam(this);
46
- if (skill) {
47
- fn = this.getFormulas('damageSkill');
48
- if (!fn) {
49
- throw new Error('Skill Formulas not exists');
50
- }
51
- damage = fn(paramA, paramB, skill);
52
- }
53
- else {
54
- fn = this.getFormulas('damagePhysic');
55
- if (!fn) {
56
- throw new Error('Physic Formulas not exists');
57
- }
58
- damage = fn(paramA, paramB);
59
- const coef = this.coefficientElements(attackerPlayer);
60
- if (coef >= 2) {
61
- elementVulnerable = true;
62
- }
63
- damage *= coef;
64
- fn = this.getFormulas('damageCritical');
65
- if (fn) {
66
- let newDamage = fn(damage, paramA, paramB);
67
- if (damage != newDamage) {
68
- critical = true;
69
- }
70
- damage = newDamage;
71
- }
72
- }
73
- if (this.hasEffect(Effect.GUARD)) {
74
- fn = this.getFormulas('damageGuard');
75
- if (fn) {
76
- let newDamage = fn(damage, paramA, paramB);
77
- if (damage != newDamage) {
78
- guard = true;
79
- }
80
- damage = newDamage;
81
- }
82
- }
83
- if (this.hasEffect(Effect.SUPER_GUARD)) {
84
- damage /= 4;
85
- superGuard = true;
86
- }
87
- this.hp -= damage;
88
- return {
89
- damage,
90
- critical,
91
- elementVulnerable,
92
- guard,
93
- superGuard
94
- };
95
- }
96
- getFormulas(name) {
97
- return this.server.damageFormulas[name];
98
- }
99
- }
100
- applyMixins(BattleManager, [ParameterManager, ElementManager, EffectManager]);
101
- //# sourceMappingURL=BattleManager.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"BattleManager.js","sourceRoot":"","sources":["../../src/Player/BattleManager.ts"],"names":[],"mappings":"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"}
@@ -1,47 +0,0 @@
1
- import { ParameterManager } from './ParameterManager';
2
- import { ItemManager } from './ItemManager';
3
- type ClassClass = {
4
- new (...args: any[]): any;
5
- };
6
- type ActorClass = {
7
- new (...args: any[]): any;
8
- };
9
- export declare class ClassManager {
10
- _class: any;
11
- /**
12
- * Assign a class to the player
13
- *
14
- * ```ts
15
- * import { Fighter } from 'my-database/classes/fighter'
16
- *
17
- * player.setClass(Fighter)
18
- * ```
19
- *
20
- * @title Set Class
21
- * @method player.setClass(ClassClass)
22
- * @param {ClassClass | string} class class or id
23
- * @returns {instance of ClassClass}
24
- * @memberof ClassManager
25
- * */
26
- setClass(_class: ClassClass | string): any;
27
- /**
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)
29
- *
30
- * ```ts
31
- * import { Hero } from 'my-database/classes/hero'
32
- *
33
- * player.setActor(Hero)
34
- * ```
35
- *
36
- * @title Set Actor
37
- * @method player.setActor(ActorClass)
38
- * @param {ActorClass | string} actorClass actor class or id
39
- * @returns {instance of ActorClass}
40
- * @memberof ClassManager
41
- * */
42
- setActor(actorClass: ActorClass | string): any;
43
- }
44
- export interface ClassManager extends ParameterManager, ItemManager {
45
- name: string;
46
- }
47
- export {};
@@ -1,65 +0,0 @@
1
- import { Utils } from '@rpgjs/common';
2
- import { ParameterManager } from './ParameterManager.js';
3
- import { ItemManager } from './ItemManager.js';
4
- const { applyMixins, isString } = Utils;
5
- export class ClassManager {
6
- /**
7
- * Assign a class to the player
8
- *
9
- * ```ts
10
- * import { Fighter } from 'my-database/classes/fighter'
11
- *
12
- * player.setClass(Fighter)
13
- * ```
14
- *
15
- * @title Set Class
16
- * @method player.setClass(ClassClass)
17
- * @param {ClassClass | string} class class or id
18
- * @returns {instance of ClassClass}
19
- * @memberof ClassManager
20
- * */
21
- setClass(_class) {
22
- if (isString(_class))
23
- _class = this.databaseById(_class);
24
- this._class = new _class();
25
- this['execMethod']('onSet', [this], this._class);
26
- return this._class;
27
- }
28
- /**
29
- * 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)
30
- *
31
- * ```ts
32
- * import { Hero } from 'my-database/classes/hero'
33
- *
34
- * player.setActor(Hero)
35
- * ```
36
- *
37
- * @title Set Actor
38
- * @method player.setActor(ActorClass)
39
- * @param {ActorClass | string} actorClass actor class or id
40
- * @returns {instance of ActorClass}
41
- * @memberof ClassManager
42
- * */
43
- setActor(actorClass) {
44
- if (isString(actorClass))
45
- actorClass = this.databaseById(actorClass);
46
- const actor = new actorClass();
47
- ['name', 'initialLevel', 'finalLevel', 'expCurve'].forEach(key => {
48
- if (actor[key])
49
- this[key] = actor[key];
50
- });
51
- for (let param in actor.parameters) {
52
- this.addParameter(param, actor.parameters[param]);
53
- }
54
- for (let item of actor.startingEquipment) {
55
- this.addItem(item);
56
- this.equip(item, true);
57
- }
58
- if (actor.class)
59
- this.setClass(actor.class);
60
- this['execMethod']('onSet', [this], actor);
61
- return actor;
62
- }
63
- }
64
- applyMixins(ClassManager, [ParameterManager, ItemManager]);
65
- //# sourceMappingURL=ClassManager.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ClassManager.js","sourceRoot":"","sources":["../../src/Player/ClassManager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAO,eAAe,CAAA;AACtC,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAA;AACrD,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAE3C,MAAM,EACF,WAAW,EACX,QAAQ,EACX,GAAG,KAAK,CAAA;AAKT,MAAM,OAAO,YAAY;IAIrB;;;;;;;;;;;;;;SAcK;IACL,QAAQ,CAAC,MAA2B;QAChC,IAAI,QAAQ,CAAC,MAAM,CAAC;YAAE,MAAM,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAA;QACxD,IAAI,CAAC,MAAM,GAAG,IAAK,MAAqB,EAAE,CAAA;QAC1C,IAAI,CAAC,YAAY,CAAC,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,CAAA;QAChD,OAAO,IAAI,CAAC,MAAM,CAAA;IACtB,CAAC;IAED;;;;;;;;;;;;;;SAcK;IACL,QAAQ,CAAC,UAA+B;QACpC,IAAI,QAAQ,CAAC,UAAU,CAAC;YAAE,UAAU,GAAG,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,CAAA;QACpE,MAAM,KAAK,GAAG,IAAK,UAAyB,EAAE,CAAC;QAC/C,CAAC,MAAM,EAAE,cAAc,EAAE,YAAY,EAAE,UAAU,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;YAC7D,IAAI,KAAK,CAAC,GAAG,CAAC;gBAAE,IAAI,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,CAAA;QAC1C,CAAC,CAAC,CAAA;QACF,KAAK,IAAI,KAAK,IAAI,KAAK,CAAC,UAAU,EAAE;YAChC,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAA;SACpD;QACD,KAAK,IAAI,IAAI,IAAI,KAAK,CAAC,iBAAiB,EAAE;YACtC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;YAClB,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAA;SACzB;QACD,IAAI,KAAK,CAAC,KAAK;YAAE,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;QAC3C,IAAI,CAAC,YAAY,CAAC,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,EAAE,KAAK,CAAC,CAAA;QAC1C,OAAO,KAAK,CAAA;IAChB,CAAC;CACJ;AAED,WAAW,CAAC,YAAY,EAAE,CAAC,gBAAgB,EAAE,WAAW,CAAC,CAAC,CAAA"}