@reldens/game-data-generator 0.1.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.
@@ -0,0 +1,601 @@
1
+ {
2
+ "1": {
3
+ "req": 10,
4
+ "total": 10,
5
+ "growthFactor": 2
6
+ },
7
+ "2": {
8
+ "diff": 10,
9
+ "req": 20,
10
+ "total": 30,
11
+ "growthFactor": 2.005
12
+ },
13
+ "3": {
14
+ "diff": 20,
15
+ "req": 40,
16
+ "total": 70,
17
+ "growthFactor": 2.01
18
+ },
19
+ "4": {
20
+ "diff": 40,
21
+ "req": 80,
22
+ "total": 150,
23
+ "growthFactor": 2.015
24
+ },
25
+ "5": {
26
+ "diff": 40,
27
+ "req": 120,
28
+ "total": 270,
29
+ "growthFactor": 1.505
30
+ },
31
+ "6": {
32
+ "diff": 60,
33
+ "req": 180,
34
+ "total": 450,
35
+ "growthFactor": 1.51
36
+ },
37
+ "7": {
38
+ "diff": 91,
39
+ "req": 271,
40
+ "total": 721,
41
+ "growthFactor": 1.515
42
+ },
43
+ "8": {
44
+ "diff": 139,
45
+ "req": 410,
46
+ "total": 1131,
47
+ "growthFactor": 1.52
48
+ },
49
+ "9": {
50
+ "diff": 213,
51
+ "req": 623,
52
+ "total": 1754,
53
+ "growthFactor": 1.525
54
+ },
55
+ "10": {
56
+ "diff": 218,
57
+ "req": 841,
58
+ "total": 2595,
59
+ "growthFactor": 1.355
60
+ },
61
+ "11": {
62
+ "diff": 298,
63
+ "req": 1139,
64
+ "total": 3734,
65
+ "growthFactor": 1.36
66
+ },
67
+ "12": {
68
+ "diff": 410,
69
+ "req": 1549,
70
+ "total": 5283,
71
+ "growthFactor": 1.365
72
+ },
73
+ "13": {
74
+ "diff": 565,
75
+ "req": 2114,
76
+ "total": 7397,
77
+ "growthFactor": 1.37
78
+ },
79
+ "14": {
80
+ "diff": 782,
81
+ "req": 2896,
82
+ "total": 10293,
83
+ "growthFactor": 1.375
84
+ },
85
+ "15": {
86
+ "diff": 784,
87
+ "req": 3680,
88
+ "total": 13973,
89
+ "growthFactor": 1.276
90
+ },
91
+ "16": {
92
+ "diff": 1015,
93
+ "req": 4695,
94
+ "total": 18668,
95
+ "growthFactor": 1.281
96
+ },
97
+ "17": {
98
+ "diff": 1319,
99
+ "req": 6014,
100
+ "total": 24682,
101
+ "growthFactor": 1.286
102
+ },
103
+ "18": {
104
+ "diff": 1720,
105
+ "req": 7734,
106
+ "total": 32416,
107
+ "growthFactor": 1.291
108
+ },
109
+ "19": {
110
+ "diff": 2250,
111
+ "req": 9984,
112
+ "total": 42400,
113
+ "growthFactor": 1.296
114
+ },
115
+ "20": {
116
+ "diff": 998,
117
+ "req": 10982,
118
+ "total": 53382,
119
+ "growthFactor": 1.105
120
+ },
121
+ "21": {
122
+ "diff": 1153,
123
+ "req": 12135,
124
+ "total": 65517,
125
+ "growthFactor": 1.11
126
+ },
127
+ "22": {
128
+ "diff": 1334,
129
+ "req": 13469,
130
+ "total": 78986,
131
+ "growthFactor": 1.115
132
+ },
133
+ "23": {
134
+ "diff": 1548,
135
+ "req": 15017,
136
+ "total": 94003,
137
+ "growthFactor": 1.12
138
+ },
139
+ "24": {
140
+ "diff": 1802,
141
+ "req": 16819,
142
+ "total": 110822,
143
+ "growthFactor": 1.125
144
+ },
145
+ "25": {
146
+ "diff": 2102,
147
+ "req": 18921,
148
+ "total": 129743,
149
+ "growthFactor": 1.13
150
+ },
151
+ "26": {
152
+ "diff": 2459,
153
+ "req": 21380,
154
+ "total": 151123,
155
+ "growthFactor": 1.135
156
+ },
157
+ "27": {
158
+ "diff": 2886,
159
+ "req": 24266,
160
+ "total": 175389,
161
+ "growthFactor": 1.14
162
+ },
163
+ "28": {
164
+ "diff": 3397,
165
+ "req": 27663,
166
+ "total": 203052,
167
+ "growthFactor": 1.145
168
+ },
169
+ "29": {
170
+ "diff": 4011,
171
+ "req": 31674,
172
+ "total": 234726,
173
+ "growthFactor": 1.15
174
+ },
175
+ "30": {
176
+ "diff": 4751,
177
+ "req": 36425,
178
+ "total": 271151,
179
+ "growthFactor": 1.155
180
+ },
181
+ "31": {
182
+ "diff": 5645,
183
+ "req": 42070,
184
+ "total": 313221,
185
+ "growthFactor": 1.16
186
+ },
187
+ "32": {
188
+ "diff": 6731,
189
+ "req": 48801,
190
+ "total": 362022,
191
+ "growthFactor": 1.165
192
+ },
193
+ "33": {
194
+ "diff": 8052,
195
+ "req": 56853,
196
+ "total": 418875,
197
+ "growthFactor": 1.17
198
+ },
199
+ "34": {
200
+ "diff": 9665,
201
+ "req": 66518,
202
+ "total": 485393,
203
+ "growthFactor": 1.175
204
+ },
205
+ "35": {
206
+ "diff": 11640,
207
+ "req": 78158,
208
+ "total": 563551,
209
+ "growthFactor": 1.18
210
+ },
211
+ "36": {
212
+ "diff": 14068,
213
+ "req": 92226,
214
+ "total": 655777,
215
+ "growthFactor": 1.185
216
+ },
217
+ "37": {
218
+ "diff": 17061,
219
+ "req": 109287,
220
+ "total": 765064,
221
+ "growthFactor": 1.19
222
+ },
223
+ "38": {
224
+ "diff": 20764,
225
+ "req": 130051,
226
+ "total": 895115,
227
+ "growthFactor": 1.195
228
+ },
229
+ "39": {
230
+ "diff": 25359,
231
+ "req": 155410,
232
+ "total": 1050525,
233
+ "growthFactor": 1.2
234
+ },
235
+ "40": {
236
+ "diff": 0,
237
+ "req": 155410,
238
+ "total": 1205935,
239
+ "growthFactor": 1.005
240
+ },
241
+ "41": {
242
+ "diff": 777,
243
+ "req": 156187,
244
+ "total": 1362122,
245
+ "growthFactor": 1.01
246
+ },
247
+ "42": {
248
+ "diff": 1561,
249
+ "req": 157748,
250
+ "total": 1519870,
251
+ "growthFactor": 1.015
252
+ },
253
+ "43": {
254
+ "diff": 2366,
255
+ "req": 160114,
256
+ "total": 1679984,
257
+ "growthFactor": 1.02
258
+ },
259
+ "44": {
260
+ "diff": 3202,
261
+ "req": 163316,
262
+ "total": 1843300,
263
+ "growthFactor": 1.025
264
+ },
265
+ "45": {
266
+ "diff": 4082,
267
+ "req": 167398,
268
+ "total": 2010698,
269
+ "growthFactor": 1.03
270
+ },
271
+ "46": {
272
+ "diff": 5021,
273
+ "req": 172419,
274
+ "total": 2183117,
275
+ "growthFactor": 1.035
276
+ },
277
+ "47": {
278
+ "diff": 6034,
279
+ "req": 178453,
280
+ "total": 2361570,
281
+ "growthFactor": 1.04
282
+ },
283
+ "48": {
284
+ "diff": 7138,
285
+ "req": 185591,
286
+ "total": 2547161,
287
+ "growthFactor": 1.045
288
+ },
289
+ "49": {
290
+ "diff": 8351,
291
+ "req": 193942,
292
+ "total": 2741103,
293
+ "growthFactor": 1.05
294
+ },
295
+ "50": {
296
+ "diff": 9697,
297
+ "req": 203639,
298
+ "total": 2944742,
299
+ "growthFactor": 1.055
300
+ },
301
+ "51": {
302
+ "diff": 11200,
303
+ "req": 214839,
304
+ "total": 3159581,
305
+ "growthFactor": 1.06
306
+ },
307
+ "52": {
308
+ "diff": 12890,
309
+ "req": 227729,
310
+ "total": 3387310,
311
+ "growthFactor": 1.065
312
+ },
313
+ "53": {
314
+ "diff": 14802,
315
+ "req": 242531,
316
+ "total": 3629841,
317
+ "growthFactor": 1.07
318
+ },
319
+ "54": {
320
+ "diff": 16977,
321
+ "req": 259508,
322
+ "total": 3889349,
323
+ "growthFactor": 1.075
324
+ },
325
+ "55": {
326
+ "diff": 19463,
327
+ "req": 278971,
328
+ "total": 4168320,
329
+ "growthFactor": 1.08
330
+ },
331
+ "56": {
332
+ "diff": 22317,
333
+ "req": 301288,
334
+ "total": 4469608,
335
+ "growthFactor": 1.085
336
+ },
337
+ "57": {
338
+ "diff": 25609,
339
+ "req": 326897,
340
+ "total": 4796505,
341
+ "growthFactor": 1.09
342
+ },
343
+ "58": {
344
+ "diff": 29420,
345
+ "req": 356317,
346
+ "total": 5152822,
347
+ "growthFactor": 1.095
348
+ },
349
+ "59": {
350
+ "diff": 33850,
351
+ "req": 390167,
352
+ "total": 5542989,
353
+ "growthFactor": 1.1
354
+ },
355
+ "60": {
356
+ "diff": 39016,
357
+ "req": 429183,
358
+ "total": 5972172,
359
+ "growthFactor": 1.105
360
+ },
361
+ "61": {
362
+ "diff": 45064,
363
+ "req": 474247,
364
+ "total": 6446419,
365
+ "growthFactor": 1.11
366
+ },
367
+ "62": {
368
+ "diff": 52167,
369
+ "req": 526414,
370
+ "total": 6972833,
371
+ "growthFactor": 1.115
372
+ },
373
+ "63": {
374
+ "diff": 60537,
375
+ "req": 586951,
376
+ "total": 7559784,
377
+ "growthFactor": 1.12
378
+ },
379
+ "64": {
380
+ "diff": 70434,
381
+ "req": 657385,
382
+ "total": 8217169,
383
+ "growthFactor": 1.125
384
+ },
385
+ "65": {
386
+ "diff": 82173,
387
+ "req": 739558,
388
+ "total": 8956727,
389
+ "growthFactor": 1.13
390
+ },
391
+ "66": {
392
+ "diff": 96142,
393
+ "req": 835700,
394
+ "total": 9792427,
395
+ "growthFactor": 1.135
396
+ },
397
+ "67": {
398
+ "diff": 112819,
399
+ "req": 948519,
400
+ "total": 10740946,
401
+ "growthFactor": 1.14
402
+ },
403
+ "68": {
404
+ "diff": 132792,
405
+ "req": 1081311,
406
+ "total": 11822257,
407
+ "growthFactor": 1.145
408
+ },
409
+ "69": {
410
+ "diff": 156790,
411
+ "req": 1238101,
412
+ "total": 13060358,
413
+ "growthFactor": 1.15
414
+ },
415
+ "70": {
416
+ "diff": 185715,
417
+ "req": 1423816,
418
+ "total": 14484174,
419
+ "growthFactor": 1.155
420
+ },
421
+ "71": {
422
+ "diff": 220691,
423
+ "req": 1644507,
424
+ "total": 16128681,
425
+ "growthFactor": 1.16
426
+ },
427
+ "72": {
428
+ "diff": 263121,
429
+ "req": 1907628,
430
+ "total": 18036309,
431
+ "growthFactor": 1.165
432
+ },
433
+ "73": {
434
+ "diff": 314758,
435
+ "req": 2222386,
436
+ "total": 20258695,
437
+ "growthFactor": 1.17
438
+ },
439
+ "74": {
440
+ "diff": 377805,
441
+ "req": 2600191,
442
+ "total": 22858886,
443
+ "growthFactor": 1.175
444
+ },
445
+ "75": {
446
+ "diff": 455033,
447
+ "req": 3055224,
448
+ "total": 25914110,
449
+ "growthFactor": 1.18
450
+ },
451
+ "76": {
452
+ "diff": 549940,
453
+ "req": 3605164,
454
+ "total": 29519274,
455
+ "growthFactor": 1.185
456
+ },
457
+ "77": {
458
+ "diff": 666955,
459
+ "req": 4272119,
460
+ "total": 33791393,
461
+ "growthFactor": 1.19
462
+ },
463
+ "78": {
464
+ "diff": 811702,
465
+ "req": 5083821,
466
+ "total": 38875214,
467
+ "growthFactor": 1.195
468
+ },
469
+ "79": {
470
+ "diff": 991345,
471
+ "req": 6075166,
472
+ "total": 44950380,
473
+ "growthFactor": 1.2
474
+ },
475
+ "80": {
476
+ "diff": 1215033,
477
+ "req": 7290199,
478
+ "total": 52240579,
479
+ "growthFactor": 1.205
480
+ },
481
+ "81": {
482
+ "diff": 1494490,
483
+ "req": 8784689,
484
+ "total": 61025268,
485
+ "growthFactor": 1.21
486
+ },
487
+ "82": {
488
+ "diff": 1844784,
489
+ "req": 10629473,
490
+ "total": 71654741,
491
+ "growthFactor": 1.215
492
+ },
493
+ "83": {
494
+ "diff": 2285336,
495
+ "req": 12914809,
496
+ "total": 84569550,
497
+ "growthFactor": 1.22
498
+ },
499
+ "84": {
500
+ "diff": 2841257,
501
+ "req": 15756066,
502
+ "total": 100325616,
503
+ "growthFactor": 1.225
504
+ },
505
+ "85": {
506
+ "diff": 3545114,
507
+ "req": 19301180,
508
+ "total": 119626796,
509
+ "growthFactor": 1.23
510
+ },
511
+ "86": {
512
+ "diff": 4439271,
513
+ "req": 23740451,
514
+ "total": 143367247,
515
+ "growthFactor": 1.235
516
+ },
517
+ "87": {
518
+ "diff": 5579005,
519
+ "req": 29319456,
520
+ "total": 172686703,
521
+ "growthFactor": 1.24
522
+ },
523
+ "88": {
524
+ "diff": 7036669,
525
+ "req": 36356125,
526
+ "total": 209042828,
527
+ "growthFactor": 1.245
528
+ },
529
+ "89": {
530
+ "diff": 8907250,
531
+ "req": 45263375,
532
+ "total": 254306203,
533
+ "growthFactor": 1.25
534
+ },
535
+ "90": {
536
+ "diff": 11315843,
537
+ "req": 56579218,
538
+ "total": 310885421,
539
+ "growthFactor": 1.255
540
+ },
541
+ "91": {
542
+ "diff": 14427700,
543
+ "req": 71006918,
544
+ "total": 381892339,
545
+ "growthFactor": 1.26
546
+ },
547
+ "92": {
548
+ "diff": 18461798,
549
+ "req": 89468716,
550
+ "total": 471361055,
551
+ "growthFactor": 1.265
552
+ },
553
+ "93": {
554
+ "diff": 23709209,
555
+ "req": 113177925,
556
+ "total": 584538980,
557
+ "growthFactor": 1.27
558
+ },
559
+ "94": {
560
+ "diff": 30558039,
561
+ "req": 143735964,
562
+ "total": 728274944,
563
+ "growthFactor": 1.275
564
+ },
565
+ "95": {
566
+ "diff": 39527390,
567
+ "req": 183263354,
568
+ "total": 911538298,
569
+ "growthFactor": 1.28
570
+ },
571
+ "96": {
572
+ "diff": 51313739,
573
+ "req": 234577093,
574
+ "total": 1146115391,
575
+ "growthFactor": 1.285
576
+ },
577
+ "97": {
578
+ "diff": 66854471,
579
+ "req": 301431564,
580
+ "total": 1447546955,
581
+ "growthFactor": 1.29
582
+ },
583
+ "98": {
584
+ "diff": 87415153,
585
+ "req": 388846717,
586
+ "total": 1836393672,
587
+ "growthFactor": 1.295
588
+ },
589
+ "99": {
590
+ "diff": 114709781,
591
+ "req": 503556498,
592
+ "total": 2339950170,
593
+ "growthFactor": 1.3
594
+ },
595
+ "100": {
596
+ "diff": 151066949,
597
+ "req": 654623447,
598
+ "total": 2994573617,
599
+ "growthFactor": 1.305
600
+ }
601
+ }
package/index.js ADDED
@@ -0,0 +1,15 @@
1
+ /**
2
+ *
3
+ * Reldens - Game Data Generator
4
+ *
5
+ */
6
+
7
+ const { PlayersExperiencePerLevel } = require('./lib/generator/players-experience-per-level');
8
+ const { MonstersExperiencePerLevel } = require('./lib/generator/monsters-experience-per-level');
9
+ const { MonsterAttributesPerLevel } = require('./lib/generator/monsters-attributes-per-level');
10
+
11
+ module.exports = {
12
+ PlayersExperiencePerLevel,
13
+ MonstersExperiencePerLevel,
14
+ MonsterAttributesPerLevel
15
+ };
@@ -0,0 +1,43 @@
1
+ /**
2
+ *
3
+ * Reldens - Game Data Generator - FileHandler
4
+ *
5
+ */
6
+
7
+ const fs = require('fs');
8
+ const path = require('path');
9
+ const { Logger} = require('@reldens/utils');
10
+
11
+ class FileHandler
12
+ {
13
+
14
+ joinPaths(...paths)
15
+ {
16
+ return path.join(...paths);
17
+ }
18
+
19
+ copyFile(from, name, generatedFolder)
20
+ {
21
+ fs.copyFileSync(from, path.join(generatedFolder, name));
22
+ }
23
+
24
+ createFolder(generateFolderPath)
25
+ {
26
+ fs.mkdirSync(generateFolderPath, { recursive: true });
27
+ }
28
+
29
+ async writeFile(fileName, content)
30
+ {
31
+ return fs.writeFile(fileName, content, 'utf8', (err) => {
32
+ if(err){
33
+ Logger.error('Error saving the file:', err);
34
+ return false;
35
+ }
36
+ Logger.info('The file has been saved! New file name: '+fileName);
37
+ return true;
38
+ });
39
+ }
40
+
41
+ }
42
+
43
+ module.exports.FileHandler = FileHandler;
@@ -0,0 +1,45 @@
1
+ /**
2
+ *
3
+ * Reldens - Game Data Generator - GameDataGenerator
4
+ *
5
+ */
6
+
7
+ const { FileHandler } = require('../files/file-handler');
8
+ const { Logger } = require('@reldens/utils');
9
+
10
+ class GameDataGenerator
11
+ {
12
+
13
+ constructor()
14
+ {
15
+ this.currentDate = (new Date()).toISOString().slice(0, 19).replace('T', '-').replace(/:/g, '-');
16
+ this.optionsValidator = null;
17
+ this.fileHandler = new FileHandler();
18
+ }
19
+
20
+ setReady(props)
21
+ {
22
+ this.isReady = false;
23
+ if (props && 0 < Object.keys(props).length) {
24
+ this.setOptions(props);
25
+ this.isReady = this.validate();
26
+ }
27
+ }
28
+
29
+ setOptions()
30
+ {
31
+ Logger.warning('Method "setOptions" was not implemented.');
32
+ }
33
+
34
+ validate()
35
+ {
36
+ return Boolean(this.optionsValidator?.validate(this));
37
+ }
38
+
39
+ generate()
40
+ {
41
+ Logger.warning('Method "generate" was not implemented.');
42
+ }
43
+ }
44
+
45
+ module.exports.GameDataGenerator = GameDataGenerator;