@rpgjs/server 4.3.0 → 5.0.0-alpha.1
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 +32 -15
- 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 +15 -37
- 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 +36 -12
- 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 -174
- package/LICENSE +0 -19
- package/browser/manifest.json +0 -7
- package/browser/rpg.server.js +0 -22379
- package/browser/rpg.server.umd.cjs +0 -22410
- 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 -419
- 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 -18
- package/lib/express/server.js +0 -70
- 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 -500
- 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 -94
- 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,505 +0,0 @@
|
|
|
1
|
-
import { Utils } from '@rpgjs/common';
|
|
2
|
-
const defaultStyle = (style) => ({
|
|
3
|
-
borderColor: '#000000',
|
|
4
|
-
borderWidth: 2,
|
|
5
|
-
bgColor: '#000000',
|
|
6
|
-
borderRadius: 5,
|
|
7
|
-
...style
|
|
8
|
-
});
|
|
9
|
-
const bar = (current, max, style, text) => {
|
|
10
|
-
return {
|
|
11
|
-
id: 'bar',
|
|
12
|
-
value: {
|
|
13
|
-
current,
|
|
14
|
-
max,
|
|
15
|
-
text: text === null ? '' : text || '{$current}/{$max}',
|
|
16
|
-
style
|
|
17
|
-
}
|
|
18
|
-
};
|
|
19
|
-
};
|
|
20
|
-
export const Components = {
|
|
21
|
-
/**
|
|
22
|
-
* Displays a bar
|
|
23
|
-
*
|
|
24
|
-
* Example:
|
|
25
|
-
*
|
|
26
|
-
* ```ts
|
|
27
|
-
* import { Components } from '@rpgjs/server'
|
|
28
|
-
* Components.bar('hp', 'param.maxHp', {
|
|
29
|
-
* bgColor: '#ab0606'
|
|
30
|
-
* })
|
|
31
|
-
* ```
|
|
32
|
-
*
|
|
33
|
-
* For text, you can use the following variables:
|
|
34
|
-
* - {$current} current value
|
|
35
|
-
* - {$max} maximum value
|
|
36
|
-
* - {$percent} percentage
|
|
37
|
-
*
|
|
38
|
-
* Example:
|
|
39
|
-
*
|
|
40
|
-
* ```ts
|
|
41
|
-
* import { Components } from '@rpgjs/server'
|
|
42
|
-
* Components.bar('hp', 'param.maxHp', {
|
|
43
|
-
* bgColor: '#ab0606'
|
|
44
|
-
* }, 'HP: {$current}/{$max}')
|
|
45
|
-
* ```
|
|
46
|
-
*
|
|
47
|
-
* and you can also use the variables of player:
|
|
48
|
-
*
|
|
49
|
-
* ```ts
|
|
50
|
-
* import { Components } from '@rpgjs/server'
|
|
51
|
-
* Components.bar('hp', 'param.maxHp', {
|
|
52
|
-
* bgColor: '#ab0606'
|
|
53
|
-
* }, 'HP: {$current}/{$max} - {name}') // HP: 100/100 - John
|
|
54
|
-
* ```
|
|
55
|
-
*
|
|
56
|
-
* @title Bar Component
|
|
57
|
-
* @param {string} current Parameter that corresponds to the current value
|
|
58
|
-
* @param {string} max Parameter that corresponds to the maximum value
|
|
59
|
-
* @param {object} [style] style
|
|
60
|
-
* @param {string} [style.bgColor] background color. Hexadecimal format.
|
|
61
|
-
* @param {string} [style.fillColor] fill color. Hexadecimal format.
|
|
62
|
-
* @param {string} [style.borderColor] border color. Hexadecimal format.
|
|
63
|
-
* @param {number} [style.borderWidth] border width
|
|
64
|
-
* @param {number} [style.height] height
|
|
65
|
-
* @param {number} [style.width] width
|
|
66
|
-
* @param {number} [style.borderRadius] border radius
|
|
67
|
-
* @param {number} [style.opacity] opacity
|
|
68
|
-
* @param {string | null} [text] text above bar. if null, no text will be displayed. You can use the variables
|
|
69
|
-
* @returns {BarComponentObject}
|
|
70
|
-
* @memberof Components
|
|
71
|
-
* @since 3.3.0
|
|
72
|
-
*/
|
|
73
|
-
bar,
|
|
74
|
-
/**
|
|
75
|
-
* Displays a life bar
|
|
76
|
-
*
|
|
77
|
-
* @title HP Bar Component
|
|
78
|
-
* @param {object} [style] style. See bar style (Components.bar())
|
|
79
|
-
* @param {string | null} [text] test above bar (Components.bar())
|
|
80
|
-
* @returns {BarComponentObject}
|
|
81
|
-
* @memberof Components
|
|
82
|
-
* @since 3.3.0
|
|
83
|
-
*/
|
|
84
|
-
hpBar(style, text) {
|
|
85
|
-
return bar('hp', 'param.maxHp', {
|
|
86
|
-
...defaultStyle({
|
|
87
|
-
fillColor: '#ab0606'
|
|
88
|
-
}),
|
|
89
|
-
...(style || {})
|
|
90
|
-
}, text);
|
|
91
|
-
},
|
|
92
|
-
/**
|
|
93
|
-
* Displays a SP bar
|
|
94
|
-
*
|
|
95
|
-
* @title SP Bar Component
|
|
96
|
-
* @param {object} [style] style. See bar style (Components.bar())
|
|
97
|
-
* @param {string | null} [text] test above bar (Components.bar())
|
|
98
|
-
* @returns {BarComponentObject}
|
|
99
|
-
* @memberof Components
|
|
100
|
-
* @since 3.3.0
|
|
101
|
-
*/
|
|
102
|
-
spBar(style, text) {
|
|
103
|
-
return bar('sp', 'param.maxSp', {
|
|
104
|
-
...defaultStyle({
|
|
105
|
-
fillColor: '#0fa38c'
|
|
106
|
-
}),
|
|
107
|
-
...(style || {}),
|
|
108
|
-
}, text);
|
|
109
|
-
},
|
|
110
|
-
/**
|
|
111
|
-
* Put on the text. You can read the content of a variable with {} format (see example below)
|
|
112
|
-
*
|
|
113
|
-
* Example:
|
|
114
|
-
*
|
|
115
|
-
* ```ts
|
|
116
|
-
* import { Components } from '@rpgjs/server'
|
|
117
|
-
* Components.text('Hello World')
|
|
118
|
-
* ```
|
|
119
|
-
*
|
|
120
|
-
* Example with variable:
|
|
121
|
-
*
|
|
122
|
-
* ```ts
|
|
123
|
-
* import { Components } from '@rpgjs/server'
|
|
124
|
-
* Components.text('{name}')
|
|
125
|
-
* ```
|
|
126
|
-
*
|
|
127
|
-
* Other example with position:
|
|
128
|
-
*
|
|
129
|
-
* ```ts
|
|
130
|
-
* import { Components } from '@rpgjs/server'
|
|
131
|
-
* Components.text('X: {position.x} Y: {position.y}')
|
|
132
|
-
* ```
|
|
133
|
-
*
|
|
134
|
-
* With style:
|
|
135
|
-
*
|
|
136
|
-
* ```ts
|
|
137
|
-
* import { Components } from '@rpgjs/server'
|
|
138
|
-
* Components.text('Hello World', {
|
|
139
|
-
* fill: '#ffffff',
|
|
140
|
-
* fontSize: 20,
|
|
141
|
-
* fontFamily: 'Arial',
|
|
142
|
-
* stroke: '#000000',
|
|
143
|
-
* fontStyle: 'italic',
|
|
144
|
-
* fontWeight: 'bold'
|
|
145
|
-
* })
|
|
146
|
-
* ```
|
|
147
|
-
*
|
|
148
|
-
* @title Text Component
|
|
149
|
-
* @param {string} value source
|
|
150
|
-
* @param {object} [style] style
|
|
151
|
-
* @param {string} [style.fill] color. Hexadecimal format.
|
|
152
|
-
* @param {number} [style.fontSize] font size
|
|
153
|
-
* @param {string} [style.fontFamily] font family
|
|
154
|
-
* @param {string} [style.stroke] stroke color. Hexadecimal format.
|
|
155
|
-
* @param {'normal' | 'italic' | 'oblique'} [style.fontStyle] font style
|
|
156
|
-
* @param {'normal' | 'bold' | 'bolder' | 'lighter' | '100' | '200' | '300' | '400' | '500' | '600' | '700' | '800' | '900'} [style.fontWeight] font weight
|
|
157
|
-
* @param {number} [style.opacity] opacity. Between 0 and 1
|
|
158
|
-
* @param {boolean} [style.wordWrap] word wrap
|
|
159
|
-
* @param {'left' | 'center' | 'right' | 'justify'} [style.align] align
|
|
160
|
-
* @returns {TextComponentObject}
|
|
161
|
-
* @memberof Components
|
|
162
|
-
* @since 3.3.0
|
|
163
|
-
*/
|
|
164
|
-
text(value, style) {
|
|
165
|
-
return {
|
|
166
|
-
id: 'text',
|
|
167
|
-
value: {
|
|
168
|
-
text: value,
|
|
169
|
-
style: {
|
|
170
|
-
fill: '#ffffff',
|
|
171
|
-
fontSize: 15,
|
|
172
|
-
...(style || {})
|
|
173
|
-
}
|
|
174
|
-
}
|
|
175
|
-
};
|
|
176
|
-
},
|
|
177
|
-
/**
|
|
178
|
-
* Add a shape
|
|
179
|
-
*
|
|
180
|
-
* Example:
|
|
181
|
-
*
|
|
182
|
-
* ```ts
|
|
183
|
-
* import { Components } from '@rpgjs/server'
|
|
184
|
-
* Components.shape({
|
|
185
|
-
* fill: '#ffffff',
|
|
186
|
-
* type: 'circle',
|
|
187
|
-
* radius: 10
|
|
188
|
-
* })
|
|
189
|
-
* ```
|
|
190
|
-
*
|
|
191
|
-
* You can use parameters:
|
|
192
|
-
*
|
|
193
|
-
* ```ts
|
|
194
|
-
* import { Components } from '@rpgjs/server'
|
|
195
|
-
* Components.shape({
|
|
196
|
-
* fill: '#ffffff',
|
|
197
|
-
* type: 'circle',
|
|
198
|
-
* radius: 'hp'
|
|
199
|
-
* })
|
|
200
|
-
* ```
|
|
201
|
-
*
|
|
202
|
-
* Here, the radius will be the same as the hp value
|
|
203
|
-
*
|
|
204
|
-
* @title Shape Component
|
|
205
|
-
* @param {object} value
|
|
206
|
-
* @param {string} value.fill color. Hexadecimal format.
|
|
207
|
-
* @param {number | string} [value.opacity] opacity. Between 0 and 1
|
|
208
|
-
* @param {string} value.type type of shape. Can be 'circle' or 'rectangle', 'ellipse' or 'polygon', 'line' or 'rounded-rectangle'
|
|
209
|
-
* @param {number | string} [value.radius] if type is circle, radius of the circle
|
|
210
|
-
* @param {number | string} [value.width] if type is rectangle or ellipse, width of the rectangle
|
|
211
|
-
* @param {number | string} [value.height] if type is rectangle or ellipse, height of the rectangle
|
|
212
|
-
* @param {number | string} [value.x1] if type is line, x1 position of the line
|
|
213
|
-
* @param {number | string} [value.y1] if type is line, y1 position of the line
|
|
214
|
-
* @param {number | string} [value.x2] if type is line, x2 position of the line
|
|
215
|
-
* @param {number | string} [value.y2] if type is line, y2 position of the line
|
|
216
|
-
* @param {number[]} [value.points] if type is polygon, points of the polygon
|
|
217
|
-
* @param {object} [value.line] border style
|
|
218
|
-
* @param {string} [value.line.color] border color. Hexadecimal format.
|
|
219
|
-
* @param {number} [value.line.width] border width
|
|
220
|
-
* @param {number} [value.line.alpha] border opacity. Between 0 and 1
|
|
221
|
-
* @returns {ShapeComponentObject}
|
|
222
|
-
* @memberof Components
|
|
223
|
-
* @since 3.3.0
|
|
224
|
-
*/
|
|
225
|
-
shape(value) {
|
|
226
|
-
return {
|
|
227
|
-
id: 'shape',
|
|
228
|
-
value
|
|
229
|
-
};
|
|
230
|
-
},
|
|
231
|
-
/**
|
|
232
|
-
* Put the link to an image or the identifier of an image (if the spritesheet exists)
|
|
233
|
-
*
|
|
234
|
-
* Example:
|
|
235
|
-
*
|
|
236
|
-
* ```ts
|
|
237
|
-
* import { Components } from '@rpgjs/server'
|
|
238
|
-
* Components.image('mygraphic.png')
|
|
239
|
-
* ```
|
|
240
|
-
*
|
|
241
|
-
* @title Image Component
|
|
242
|
-
* @param {string} value source
|
|
243
|
-
* @returns {ImageComponentObject}
|
|
244
|
-
* @memberof Components
|
|
245
|
-
* @since 3.3.0
|
|
246
|
-
*/
|
|
247
|
-
image(value) {
|
|
248
|
-
return {
|
|
249
|
-
id: 'image',
|
|
250
|
-
value
|
|
251
|
-
};
|
|
252
|
-
},
|
|
253
|
-
/**
|
|
254
|
-
* Indicates the tile ID
|
|
255
|
-
*
|
|
256
|
-
* Example:
|
|
257
|
-
*
|
|
258
|
-
* ```ts
|
|
259
|
-
* import { Components } from '@rpgjs/server'
|
|
260
|
-
* Components.tile(3)
|
|
261
|
-
* ```
|
|
262
|
-
*
|
|
263
|
-
* @title Tile Component
|
|
264
|
-
* @param {number} value tile ID
|
|
265
|
-
* @returns {TileComponentObject}
|
|
266
|
-
* @memberof Components
|
|
267
|
-
* @since 3.3.0
|
|
268
|
-
*/
|
|
269
|
-
tile(value) {
|
|
270
|
-
return {
|
|
271
|
-
id: 'tile',
|
|
272
|
-
value
|
|
273
|
-
};
|
|
274
|
-
},
|
|
275
|
-
debug() {
|
|
276
|
-
return {
|
|
277
|
-
id: 'debug',
|
|
278
|
-
value: ''
|
|
279
|
-
};
|
|
280
|
-
}
|
|
281
|
-
};
|
|
282
|
-
export class ComponentManager {
|
|
283
|
-
/**
|
|
284
|
-
* Give the spritesheet identifier
|
|
285
|
-
*
|
|
286
|
-
* Since version 3.0.0-rc, you can define several graphic elements. If you put a number, it represents the tile ID in the tileset
|
|
287
|
-
*
|
|
288
|
-
* Example 1:
|
|
289
|
-
* ```ts
|
|
290
|
-
* player.setGraphic(['body', 'shield'])
|
|
291
|
-
* ```
|
|
292
|
-
*
|
|
293
|
-
* Example 2:
|
|
294
|
-
* ```ts
|
|
295
|
-
* player.setGraphic(3) // Use tile #3
|
|
296
|
-
* ```
|
|
297
|
-
*
|
|
298
|
-
* > You must, on the client side, create the spritesheet in question. Guide: [Create Sprite](/guide/create-sprite.html)
|
|
299
|
-
*
|
|
300
|
-
* @title Set Graphic
|
|
301
|
-
* @method player.setGraphic(graphic)
|
|
302
|
-
* @param {string | number | (string | number)[]} graphic
|
|
303
|
-
* @returns {void}
|
|
304
|
-
* @memberof ComponentManager
|
|
305
|
-
*/
|
|
306
|
-
setGraphic(graphic) {
|
|
307
|
-
const components = (Utils.isArray(graphic) ? graphic : [graphic]);
|
|
308
|
-
const col = [...components.map(value => ({ id: Utils.isString(value) ? 'graphic' : 'tile', value }))];
|
|
309
|
-
this.removeComponentById('center', 'graphic');
|
|
310
|
-
this.mergeComponent('center', col);
|
|
311
|
-
}
|
|
312
|
-
/**
|
|
313
|
-
* Delete components
|
|
314
|
-
*
|
|
315
|
-
* @title Remove Components
|
|
316
|
-
* @param {string} position Position of the components. Can be: `top`, `center`, `bottom`, `left`, `right`
|
|
317
|
-
* @memberof ComponentManager
|
|
318
|
-
* @since 3.3.0
|
|
319
|
-
*/
|
|
320
|
-
removeComponents(position) {
|
|
321
|
-
this.layout[position].lines = [];
|
|
322
|
-
}
|
|
323
|
-
/**
|
|
324
|
-
* Delete components by id.
|
|
325
|
-
*
|
|
326
|
-
* @title Remove Component By Id
|
|
327
|
-
* @param {string} position Position of the components. Can be: `top`, `center`, `bottom`, `left`, `right`
|
|
328
|
-
* @param {string} id Id of the component
|
|
329
|
-
* @since 3.3.0
|
|
330
|
-
*/
|
|
331
|
-
removeComponentById(position, id) {
|
|
332
|
-
let lines = this.layout[position]?.lines || [];
|
|
333
|
-
lines = lines.map(line => {
|
|
334
|
-
line.col = line.col.filter(c => c.id !== id);
|
|
335
|
-
return line;
|
|
336
|
-
});
|
|
337
|
-
lines = lines.filter(line => line.col.length > 0);
|
|
338
|
-
this.layout[position].lines = lines;
|
|
339
|
-
}
|
|
340
|
-
/**
|
|
341
|
-
* Merges components with existing components
|
|
342
|
-
*
|
|
343
|
-
* For use layout and options, see [setComponentsTop](/api/player.html#setcomponentstop)
|
|
344
|
-
*
|
|
345
|
-
* @title Merge Components
|
|
346
|
-
* @param {string} position Position of the components. Can be: `top`, `center`, `bottom`, `left`, `right`
|
|
347
|
-
* @param {Object} layout
|
|
348
|
-
* @param {Object} options
|
|
349
|
-
* @memberof ComponentManager
|
|
350
|
-
* @since 3.3.0
|
|
351
|
-
*/
|
|
352
|
-
mergeComponent(position, layout, options = {}) {
|
|
353
|
-
if (!(layout instanceof Array)) {
|
|
354
|
-
layout = [layout];
|
|
355
|
-
}
|
|
356
|
-
this.layout[position] = {
|
|
357
|
-
lines: [
|
|
358
|
-
...(this.layout[position]?.lines || []),
|
|
359
|
-
...layout.map(col => {
|
|
360
|
-
if (!Utils.isArray(col)) {
|
|
361
|
-
col = [col];
|
|
362
|
-
}
|
|
363
|
-
return { col };
|
|
364
|
-
})
|
|
365
|
-
],
|
|
366
|
-
...options
|
|
367
|
-
};
|
|
368
|
-
}
|
|
369
|
-
setComponents(position, layout, options = {}) {
|
|
370
|
-
this.layout[position].lines = [];
|
|
371
|
-
this.mergeComponent(position, layout, options);
|
|
372
|
-
}
|
|
373
|
-
/**
|
|
374
|
-
* Add components to the center of the graphic.
|
|
375
|
-
*
|
|
376
|
-
* View [setComponentsTop](/api/player.html#setcomponentstop) for more information
|
|
377
|
-
*
|
|
378
|
-
* > Be careful, because if you assign, it deletes the graphics and if the lines are superimposed (unlike the other locations)
|
|
379
|
-
*
|
|
380
|
-
* @title Set Components Center
|
|
381
|
-
* @method player.setComponentsCenter(layout,options)
|
|
382
|
-
* @param {Object} layout
|
|
383
|
-
* @param {Object} options
|
|
384
|
-
* @memberof ComponentManager
|
|
385
|
-
* @since 3.3.0
|
|
386
|
-
*/
|
|
387
|
-
setComponentsCenter(layout, options = {}) {
|
|
388
|
-
this.setComponents('center', layout, options);
|
|
389
|
-
}
|
|
390
|
-
/**
|
|
391
|
-
* Add components to the top of the graphic. e.g. text, life bar etc. The block will be centred
|
|
392
|
-
* The first array corresponds to the rows, and the nested table to the array in the row
|
|
393
|
-
*
|
|
394
|
-
* Example:
|
|
395
|
-
*
|
|
396
|
-
* ```ts
|
|
397
|
-
* import { Components } from '@rpgjs/server'
|
|
398
|
-
*
|
|
399
|
-
* player.setComponentsTop([
|
|
400
|
-
* [Components.text('Hello World')],
|
|
401
|
-
* [Components.hpBar()]
|
|
402
|
-
* ]) // 2 lines with 1 component each
|
|
403
|
-
* ```
|
|
404
|
-
*
|
|
405
|
-
* or
|
|
406
|
-
*
|
|
407
|
-
* ```ts
|
|
408
|
-
* import { Components } from '@rpgjs/server'
|
|
409
|
-
*
|
|
410
|
-
* player.setComponentsTop([
|
|
411
|
-
* [Components.text('Hello World'), Components.hpBar()]
|
|
412
|
-
* ]) // 1 line with 2 components
|
|
413
|
-
* ```
|
|
414
|
-
*
|
|
415
|
-
* You can be faster if you only have lines
|
|
416
|
-
*
|
|
417
|
-
* ```ts
|
|
418
|
-
* player.setComponentsTop([
|
|
419
|
-
* Components.text('Hello World'),
|
|
420
|
-
* Components.hpBar()
|
|
421
|
-
* ]) // 2 lines with 1 component each
|
|
422
|
-
* ```
|
|
423
|
-
*
|
|
424
|
-
* or one component:
|
|
425
|
-
*
|
|
426
|
-
* ```ts
|
|
427
|
-
* player.setComponentsTop(Components.text('Hello World')) // 1 line with 1 component
|
|
428
|
-
* ```
|
|
429
|
-
*
|
|
430
|
-
* You can add options to manage the style
|
|
431
|
-
*
|
|
432
|
-
* ```ts
|
|
433
|
-
* player.setComponentsTop([
|
|
434
|
-
* Components.text('Hello World'),
|
|
435
|
-
* Components.hpBar()
|
|
436
|
-
* ], {
|
|
437
|
-
* width: 100,
|
|
438
|
-
* height: 20,
|
|
439
|
-
* marginTop: 10,
|
|
440
|
-
* })
|
|
441
|
-
* ```
|
|
442
|
-
*
|
|
443
|
-
* @title Set Components Top
|
|
444
|
-
* @method player.setComponentsTop(layout,options)
|
|
445
|
-
* @param {ComponentObject[][] | ComponentObject[] | ComponentObject} layout Components
|
|
446
|
-
* @param {Object} [options = {}] Options
|
|
447
|
-
* @param {number} [options.width] Width of the block
|
|
448
|
-
* @param {number} [options.height = 20] Height of the block
|
|
449
|
-
* @param {number} [options.marginTop] Margin top
|
|
450
|
-
* @param {number} [options.marginBottom] Margin bottom
|
|
451
|
-
* @param {number} [options.marginLeft] Margin left
|
|
452
|
-
* @param {number} [options.marginRight] Margin right
|
|
453
|
-
* @memberof ComponentManager
|
|
454
|
-
* @since 3.3.0
|
|
455
|
-
*/
|
|
456
|
-
setComponentsTop(layout, options = {}) {
|
|
457
|
-
this.setComponents('top', layout, options);
|
|
458
|
-
}
|
|
459
|
-
/**
|
|
460
|
-
* Add components to the bottom of the graphic.
|
|
461
|
-
*
|
|
462
|
-
* View [setComponentsTop](/api/player.html#setcomponentstop) for more information
|
|
463
|
-
*
|
|
464
|
-
* @title Set Components Bottom
|
|
465
|
-
* @method player.setComponentsBottom(layout,options)
|
|
466
|
-
* @param {Object} layout
|
|
467
|
-
* @param {Object} options
|
|
468
|
-
* @memberof ComponentManager
|
|
469
|
-
* @since 3.3.0
|
|
470
|
-
*/
|
|
471
|
-
setComponentsBottom(layout, options = {}) {
|
|
472
|
-
this.setComponents('bottom', layout, options);
|
|
473
|
-
}
|
|
474
|
-
/**
|
|
475
|
-
* Add components to the left of the graphic.
|
|
476
|
-
*
|
|
477
|
-
* View [setComponentsTop](/api/player.html#setcomponentstop) for more information
|
|
478
|
-
*
|
|
479
|
-
* @title Set Components Left
|
|
480
|
-
* @method player.setComponentsLeft(layout,options)
|
|
481
|
-
* @param {Object} layout
|
|
482
|
-
* @param {Object} options
|
|
483
|
-
* @memberof ComponentManager
|
|
484
|
-
* @since 3.3.0
|
|
485
|
-
*/
|
|
486
|
-
setComponentsLeft(layout, options = {}) {
|
|
487
|
-
this.setComponents('left', layout, options);
|
|
488
|
-
}
|
|
489
|
-
/**
|
|
490
|
-
* Add components to the right of the graphic.
|
|
491
|
-
*
|
|
492
|
-
* View [setComponentsTop](/api/player.html#setcomponentstop) for more information
|
|
493
|
-
*
|
|
494
|
-
* @title Set Components Right
|
|
495
|
-
* @method player.setComponentsRight(layout,options)
|
|
496
|
-
* @param {Object} layout
|
|
497
|
-
* @param {Object} options
|
|
498
|
-
* @memberof ComponentManager
|
|
499
|
-
* @since 3.3.0
|
|
500
|
-
*/
|
|
501
|
-
setComponentsRight(layout, options = {}) {
|
|
502
|
-
this.setComponents('right', layout, options);
|
|
503
|
-
}
|
|
504
|
-
}
|
|
505
|
-
//# sourceMappingURL=ComponentManager.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ComponentManager.js","sourceRoot":"","sources":["../../src/Player/ComponentManager.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,46 +0,0 @@
|
|
|
1
|
-
import { Effect } from '@rpgjs/database';
|
|
2
|
-
import { ParameterManager } from './ParameterManager';
|
|
3
|
-
export declare class EffectManager {
|
|
4
|
-
_effects: Effect[];
|
|
5
|
-
applyEffect(item: any): void;
|
|
6
|
-
/**
|
|
7
|
-
* ```ts
|
|
8
|
-
* import { Effect } from '@rpgjs/database'
|
|
9
|
-
*
|
|
10
|
-
* const bool = player.hasEffect(Effect.CAN_NOT_SKILL)
|
|
11
|
-
* ```
|
|
12
|
-
*
|
|
13
|
-
* @title Has Effect
|
|
14
|
-
* @method player.hasEffect(effect)
|
|
15
|
-
* @param {Effect} effect
|
|
16
|
-
* @returns {boolean}
|
|
17
|
-
* @memberof EffectManager
|
|
18
|
-
* */
|
|
19
|
-
hasEffect(effect: Effect): boolean;
|
|
20
|
-
/**
|
|
21
|
-
* Retrieves a array of effects assigned to the player, state effects and effects of weapons and armors equipped with the player's own weapons.
|
|
22
|
-
*
|
|
23
|
-
* ```ts
|
|
24
|
-
* console.log(player.effects)
|
|
25
|
-
* ```
|
|
26
|
-
* @title Get Effects
|
|
27
|
-
* @prop {Array<Effect>} player.effects
|
|
28
|
-
* @memberof EffectManager
|
|
29
|
-
* */
|
|
30
|
-
get effects(): any[];
|
|
31
|
-
/**
|
|
32
|
-
* Assigns effects to the player. If you give a array, it does not change the effects of the player's states and armor/weapons equipped.
|
|
33
|
-
*
|
|
34
|
-
* ```ts
|
|
35
|
-
* import { Effect } from '@rpgjs/database'
|
|
36
|
-
*
|
|
37
|
-
* player.effects = [Effect.CAN_NOT_SKILL]
|
|
38
|
-
* ```
|
|
39
|
-
* @title Set Effects
|
|
40
|
-
* @prop {Array<Effect>} player.effects
|
|
41
|
-
* @memberof EffectManager
|
|
42
|
-
* */
|
|
43
|
-
set effects(val: any[]);
|
|
44
|
-
}
|
|
45
|
-
export interface EffectManager extends ParameterManager {
|
|
46
|
-
}
|
|
@@ -1,75 +0,0 @@
|
|
|
1
|
-
import { Utils } from '@rpgjs/common';
|
|
2
|
-
import { ParameterManager } from './ParameterManager.js';
|
|
3
|
-
import { MAXHP, MAXSP } from '../presets/index.js';
|
|
4
|
-
const { arrayUniq, arrayFlat, applyMixins } = Utils;
|
|
5
|
-
export class EffectManager {
|
|
6
|
-
// TODO
|
|
7
|
-
applyEffect(item) {
|
|
8
|
-
if (item.hpValue) {
|
|
9
|
-
this.hp += item.hpValue;
|
|
10
|
-
}
|
|
11
|
-
if (item.hpRate) {
|
|
12
|
-
this.hp += this.param[MAXHP] * item.hpRate;
|
|
13
|
-
}
|
|
14
|
-
if (item.spValue) {
|
|
15
|
-
this.sp += item.spValue;
|
|
16
|
-
}
|
|
17
|
-
if (item.spRate) {
|
|
18
|
-
this.sp += this.param[MAXSP] * item.spRate;
|
|
19
|
-
}
|
|
20
|
-
}
|
|
21
|
-
/**
|
|
22
|
-
* ```ts
|
|
23
|
-
* import { Effect } from '@rpgjs/database'
|
|
24
|
-
*
|
|
25
|
-
* const bool = player.hasEffect(Effect.CAN_NOT_SKILL)
|
|
26
|
-
* ```
|
|
27
|
-
*
|
|
28
|
-
* @title Has Effect
|
|
29
|
-
* @method player.hasEffect(effect)
|
|
30
|
-
* @param {Effect} effect
|
|
31
|
-
* @returns {boolean}
|
|
32
|
-
* @memberof EffectManager
|
|
33
|
-
* */
|
|
34
|
-
hasEffect(effect) {
|
|
35
|
-
return this.effects.includes(effect);
|
|
36
|
-
}
|
|
37
|
-
/**
|
|
38
|
-
* Retrieves a array of effects assigned to the player, state effects and effects of weapons and armors equipped with the player's own weapons.
|
|
39
|
-
*
|
|
40
|
-
* ```ts
|
|
41
|
-
* console.log(player.effects)
|
|
42
|
-
* ```
|
|
43
|
-
* @title Get Effects
|
|
44
|
-
* @prop {Array<Effect>} player.effects
|
|
45
|
-
* @memberof EffectManager
|
|
46
|
-
* */
|
|
47
|
-
get effects() {
|
|
48
|
-
const getEffects = (prop) => {
|
|
49
|
-
return arrayFlat(this[prop]
|
|
50
|
-
.map(el => el.effects || []));
|
|
51
|
-
};
|
|
52
|
-
return arrayUniq([
|
|
53
|
-
...this._effects,
|
|
54
|
-
...getEffects('states'),
|
|
55
|
-
...getEffects('equipments')
|
|
56
|
-
]);
|
|
57
|
-
}
|
|
58
|
-
/**
|
|
59
|
-
* Assigns effects to the player. If you give a array, it does not change the effects of the player's states and armor/weapons equipped.
|
|
60
|
-
*
|
|
61
|
-
* ```ts
|
|
62
|
-
* import { Effect } from '@rpgjs/database'
|
|
63
|
-
*
|
|
64
|
-
* player.effects = [Effect.CAN_NOT_SKILL]
|
|
65
|
-
* ```
|
|
66
|
-
* @title Set Effects
|
|
67
|
-
* @prop {Array<Effect>} player.effects
|
|
68
|
-
* @memberof EffectManager
|
|
69
|
-
* */
|
|
70
|
-
set effects(val) {
|
|
71
|
-
this._effects = val;
|
|
72
|
-
}
|
|
73
|
-
}
|
|
74
|
-
applyMixins(EffectManager, [ParameterManager]);
|
|
75
|
-
//# sourceMappingURL=EffectManager.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"EffectManager.js","sourceRoot":"","sources":["../../src/Player/EffectManager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAO,eAAe,CAAA;AAEtC,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAA;AAErD,OAAO,EACH,KAAK,EACL,KAAK,EACR,MAAM,YAAY,CAAA;AAEnB,MAAM,EACF,SAAS,EACT,SAAS,EACT,WAAW,EACd,GAAG,KAAK,CAAA;AAET,MAAM,OAAO,aAAa;IAItB,OAAO;IACP,WAAW,CAAC,IAAI;QACZ,IAAI,IAAI,CAAC,OAAO,EAAE;YACd,IAAI,CAAC,EAAE,IAAI,IAAI,CAAC,OAAO,CAAA;SAC1B;QACD,IAAI,IAAI,CAAC,MAAM,EAAE;YACb,IAAI,CAAC,EAAE,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,MAAM,CAAA;SAC7C;QACD,IAAI,IAAI,CAAC,OAAO,EAAE;YACd,IAAI,CAAC,EAAE,IAAI,IAAI,CAAC,OAAO,CAAA;SAC1B;QACD,IAAI,IAAI,CAAC,MAAM,EAAE;YACb,IAAI,CAAC,EAAE,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,MAAM,CAAA;SAC7C;IACL,CAAC;IAED;;;;;;;;;;;;SAYK;IACL,SAAS,CAAC,MAAc;QACpB,OAAO,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAA;IACxC,CAAC;IAED;;;;;;;;;SASK;IACL,IAAI,OAAO;QACP,MAAM,UAAU,GAAG,CAAC,IAAI,EAAE,EAAE;YACxB,OAAO,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC;iBACtB,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,CAAA;QACrC,CAAC,CAAA;QACD,OAAO,SAAS,CAAC;YACb,GAAG,IAAI,CAAC,QAAQ;YAChB,GAAG,UAAU,CAAC,QAAQ,CAAC;YACvB,GAAG,UAAU,CAAC,YAAY,CAAC;SAC9B,CAAC,CAAA;IACN,CAAC;IAED;;;;;;;;;;;SAWK;IACL,IAAI,OAAO,CAAC,GAAG;QACX,IAAI,CAAC,QAAQ,GAAG,GAAG,CAAA;IACvB,CAAC;CACJ;AAED,WAAW,CAAC,aAAa,EAAE,CAAC,gBAAgB,CAAC,CAAC,CAAA"}
|