volleyballsimtypes 0.0.165 → 0.0.167
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/dist/cjs/src/data/init-models.js +0 -21
- package/dist/cjs/src/data/models/index.d.ts +0 -2
- package/dist/cjs/src/data/models/index.js +0 -2
- package/dist/cjs/src/data/models/performance-stats.d.ts +28 -15
- package/dist/cjs/src/data/models/performance-stats.js +42 -7
- package/dist/cjs/src/data/models/player.d.ts +8 -30
- package/dist/cjs/src/data/models/player.js +6 -2
- package/dist/cjs/src/data/transformers/index.d.ts +0 -2
- package/dist/cjs/src/data/transformers/index.js +0 -2
- package/dist/cjs/src/data/transformers/performance-stats.js +25 -11
- package/dist/cjs/src/data/transformers/player.js +4 -3
- package/dist/cjs/src/index.d.ts +0 -1
- package/dist/cjs/src/index.js +0 -1
- package/dist/cjs/src/service/coach/formation.js +57 -57
- package/dist/cjs/src/service/player/index.d.ts +2 -1
- package/dist/cjs/src/service/player/index.js +2 -1
- package/dist/cjs/src/service/player/performance-stats.d.ts +5 -25
- package/dist/cjs/src/service/player/performance-stats.js +10 -29
- package/dist/cjs/src/service/player/player.d.ts +4 -5
- package/dist/cjs/src/service/player/player.js +21 -41
- package/dist/cjs/src/service/player/rarity.d.ts +4 -1
- package/dist/cjs/src/service/player/rarity.js +16 -14
- package/dist/cjs/src/service/player/role.d.ts +16 -15
- package/dist/cjs/src/service/player/role.js +43 -39
- package/dist/cjs/src/service/player/stats.d.ts +12 -0
- package/dist/cjs/src/service/player/stats.js +67 -0
- package/dist/cjs/src/service/player/trait.d.ts +12 -19
- package/dist/cjs/src/service/player/trait.js +49 -140
- package/dist/cjs/src/stat-config/roles.json +117 -0
- package/dist/cjs/src/stat-config/traits.json +58 -0
- package/dist/esm/src/data/init-models.js +1 -22
- package/dist/esm/src/data/models/index.d.ts +0 -2
- package/dist/esm/src/data/models/index.js +0 -2
- package/dist/esm/src/data/models/performance-stats.d.ts +28 -15
- package/dist/esm/src/data/models/performance-stats.js +42 -7
- package/dist/esm/src/data/models/player.d.ts +8 -30
- package/dist/esm/src/data/models/player.js +7 -3
- package/dist/esm/src/data/transformers/index.d.ts +0 -2
- package/dist/esm/src/data/transformers/index.js +0 -2
- package/dist/esm/src/data/transformers/performance-stats.js +25 -11
- package/dist/esm/src/data/transformers/player.js +5 -4
- package/dist/esm/src/index.d.ts +0 -1
- package/dist/esm/src/index.js +0 -1
- package/dist/esm/src/service/coach/formation.js +58 -58
- package/dist/esm/src/service/player/index.d.ts +2 -1
- package/dist/esm/src/service/player/index.js +2 -1
- package/dist/esm/src/service/player/performance-stats.d.ts +5 -25
- package/dist/esm/src/service/player/performance-stats.js +9 -28
- package/dist/esm/src/service/player/player.d.ts +4 -5
- package/dist/esm/src/service/player/player.js +21 -18
- package/dist/esm/src/service/player/rarity.d.ts +4 -1
- package/dist/esm/src/service/player/rarity.js +15 -13
- package/dist/esm/src/service/player/role.d.ts +16 -15
- package/dist/esm/src/service/player/role.js +37 -37
- package/dist/esm/src/service/player/stats.d.ts +12 -0
- package/dist/esm/src/service/player/stats.js +62 -0
- package/dist/esm/src/service/player/trait.d.ts +12 -19
- package/dist/esm/src/service/player/trait.js +46 -117
- package/dist/esm/src/stat-config/roles.json +117 -0
- package/dist/esm/src/stat-config/traits.json +58 -0
- package/package.json +1 -1
- package/dist/cjs/src/data/models/player-trait.d.ts +0 -23
- package/dist/cjs/src/data/models/player-trait.js +0 -42
- package/dist/cjs/src/data/models/trait.d.ts +0 -37
- package/dist/cjs/src/data/models/trait.js +0 -30
- package/dist/cjs/src/data/transformers/role.d.ts +0 -5
- package/dist/cjs/src/data/transformers/role.js +0 -25
- package/dist/cjs/src/data/transformers/trait.d.ts +0 -5
- package/dist/cjs/src/data/transformers/trait.js +0 -19
- package/dist/cjs/src/formula/event.formula.json +0 -125
- package/dist/cjs/src/formula/events.d.ts +0 -125
- package/dist/cjs/src/formula/events.js +0 -8
- package/dist/cjs/src/formula/index.d.ts +0 -3
- package/dist/cjs/src/formula/index.js +0 -19
- package/dist/cjs/src/formula/role.formula.json +0 -82
- package/dist/cjs/src/formula/roles.d.ts +0 -20
- package/dist/cjs/src/formula/roles.js +0 -9
- package/dist/cjs/src/formula/stat.formula.json +0 -66
- package/dist/cjs/src/formula/stats.d.ts +0 -10
- package/dist/cjs/src/formula/stats.js +0 -18
- package/dist/esm/src/data/models/player-trait.d.ts +0 -23
- package/dist/esm/src/data/models/player-trait.js +0 -38
- package/dist/esm/src/data/models/trait.d.ts +0 -37
- package/dist/esm/src/data/models/trait.js +0 -26
- package/dist/esm/src/data/transformers/role.d.ts +0 -5
- package/dist/esm/src/data/transformers/role.js +0 -21
- package/dist/esm/src/data/transformers/trait.d.ts +0 -5
- package/dist/esm/src/data/transformers/trait.js +0 -15
- package/dist/esm/src/formula/event.formula.json +0 -125
- package/dist/esm/src/formula/events.d.ts +0 -125
- package/dist/esm/src/formula/events.js +0 -2
- package/dist/esm/src/formula/index.d.ts +0 -3
- package/dist/esm/src/formula/index.js +0 -3
- package/dist/esm/src/formula/role.formula.json +0 -82
- package/dist/esm/src/formula/roles.d.ts +0 -20
- package/dist/esm/src/formula/roles.js +0 -3
- package/dist/esm/src/formula/stat.formula.json +0 -66
- package/dist/esm/src/formula/stats.d.ts +0 -10
- package/dist/esm/src/formula/stats.js +0 -11
|
@@ -1,148 +1,57 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var
|
|
3
|
-
|
|
4
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
-
}
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
-
}) : function(o, v) {
|
|
16
|
-
o["default"] = v;
|
|
17
|
-
});
|
|
18
|
-
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
-
if (mod && mod.__esModule) return mod;
|
|
20
|
-
var result = {};
|
|
21
|
-
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
-
__setModuleDefault(result, mod);
|
|
23
|
-
return result;
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
24
4
|
};
|
|
25
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
|
-
exports.
|
|
27
|
-
const GeneralStat = __importStar(require("../../formula/stats"));
|
|
6
|
+
exports.assignTraits = exports.TraitDataType = exports.TraitEnum = void 0;
|
|
28
7
|
const rarity_1 = require("./rarity");
|
|
29
8
|
const node_crypto_1 = require("node:crypto");
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
traitCount = (0, node_crypto_1.randomInt)(0, 1);
|
|
52
|
-
break;
|
|
53
|
-
}
|
|
54
|
-
case rarity_1.Rarity.LEGENDARY: {
|
|
55
|
-
traitCount = (0, node_crypto_1.randomInt)(0, 2);
|
|
56
|
-
break;
|
|
57
|
-
}
|
|
58
|
-
case rarity_1.Rarity.MYTHIC: {
|
|
59
|
-
traitCount = (0, node_crypto_1.randomInt)(1, 3);
|
|
60
|
-
break;
|
|
61
|
-
}
|
|
62
|
-
case rarity_1.Rarity.SPECIAL: {
|
|
63
|
-
traitCount = (0, node_crypto_1.randomInt)(2, 3);
|
|
64
|
-
break;
|
|
65
|
-
}
|
|
66
|
-
default:
|
|
67
|
-
throw new Error('INVALID_RARITY');
|
|
9
|
+
const traits_json_1 = __importDefault(require("../../stat-config/traits.json"));
|
|
10
|
+
const sequelize_1 = require("sequelize");
|
|
11
|
+
const stats_1 = require("./stats");
|
|
12
|
+
const traits = traits_json_1.default;
|
|
13
|
+
var TraitEnum;
|
|
14
|
+
(function (TraitEnum) {
|
|
15
|
+
TraitEnum["MASTER_MIND"] = "MASTER_MIND";
|
|
16
|
+
TraitEnum["MOVING_WALL"] = "MOVING_WALL";
|
|
17
|
+
TraitEnum["MARKSMAN"] = "MARKSMAN";
|
|
18
|
+
TraitEnum["METEOR_SERVE"] = "METEOR_SERVE";
|
|
19
|
+
TraitEnum["VIGOROUS"] = "VIGOROUS";
|
|
20
|
+
TraitEnum["GUARDIAN"] = "GUARDIAN";
|
|
21
|
+
TraitEnum["FLOAT_SERVE"] = "FLOAT_SERVE";
|
|
22
|
+
})(TraitEnum = exports.TraitEnum || (exports.TraitEnum = {}));
|
|
23
|
+
exports.TraitDataType = sequelize_1.DataTypes.ENUM(...Object.values(TraitEnum));
|
|
24
|
+
function assignTraits(performanceStats, rarity) {
|
|
25
|
+
let traitCount;
|
|
26
|
+
switch (rarity) {
|
|
27
|
+
case rarity_1.RarityEnum.COMMON: {
|
|
28
|
+
traitCount = 0;
|
|
29
|
+
break;
|
|
68
30
|
}
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
.
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
}
|
|
31
|
+
case rarity_1.RarityEnum.RARE: {
|
|
32
|
+
traitCount = (0, node_crypto_1.randomInt)(0, 1);
|
|
33
|
+
break;
|
|
34
|
+
}
|
|
35
|
+
case rarity_1.RarityEnum.LEGENDARY: {
|
|
36
|
+
traitCount = (0, node_crypto_1.randomInt)(0, 2);
|
|
37
|
+
break;
|
|
38
|
+
}
|
|
39
|
+
case rarity_1.RarityEnum.MYTHIC: {
|
|
40
|
+
traitCount = (0, node_crypto_1.randomInt)(1, 3);
|
|
41
|
+
break;
|
|
42
|
+
}
|
|
43
|
+
case rarity_1.RarityEnum.SPECIAL: {
|
|
44
|
+
traitCount = (0, node_crypto_1.randomInt)(2, 3);
|
|
45
|
+
break;
|
|
46
|
+
}
|
|
47
|
+
default:
|
|
48
|
+
throw new Error('INVALID_RARITY');
|
|
85
49
|
}
|
|
50
|
+
if (traitCount < 1)
|
|
51
|
+
return [];
|
|
52
|
+
return traits.filter((trait) => (0, stats_1.calculateStatScore)(performanceStats, trait.stat) >= trait.statThreshold)
|
|
53
|
+
.sort((t1, t2) => t2.weight - t1.weight)
|
|
54
|
+
.map((trait) => trait.name)
|
|
55
|
+
.slice(0, traitCount);
|
|
86
56
|
}
|
|
87
|
-
exports.
|
|
88
|
-
// A Setter gets a bonus to their score, and the receiving attacker gets a bonus as well.
|
|
89
|
-
// Stacks with attacker bonus
|
|
90
|
-
Trait.MASTER_MIND = new Trait({
|
|
91
|
-
id: '0117a315-a743-43e3-9ec2-ad5cf700ef08',
|
|
92
|
-
name: 'Master Mind',
|
|
93
|
-
modifier: 1.1,
|
|
94
|
-
chance: 0.2,
|
|
95
|
-
statThreshold: 80,
|
|
96
|
-
stat: 'ATTACK',
|
|
97
|
-
weight: 10
|
|
98
|
-
});
|
|
99
|
-
// Will always participate in blocking regardless of chance and adds
|
|
100
|
-
Trait.MOVING_WALL = new Trait({
|
|
101
|
-
id: '304c53f6-5e7a-44d3-9625-f10d8109421a',
|
|
102
|
-
name: 'Moving Wall',
|
|
103
|
-
modifier: 1.1,
|
|
104
|
-
chance: 1,
|
|
105
|
-
statThreshold: 75,
|
|
106
|
-
stat: 'DEFENSE',
|
|
107
|
-
weight: 5
|
|
108
|
-
});
|
|
109
|
-
// On attack, will always pick the worst receiver and adds a 10% to score
|
|
110
|
-
Trait.MARKSMAN = new Trait({
|
|
111
|
-
id: 'ace3458e-69ab-487c-a9c0-d656f705d8dd',
|
|
112
|
-
name: 'Marksman',
|
|
113
|
-
modifier: 1.05,
|
|
114
|
-
chance: 0.3,
|
|
115
|
-
statThreshold: 75,
|
|
116
|
-
stat: 'ATTACK',
|
|
117
|
-
weight: 5
|
|
118
|
-
});
|
|
119
|
-
// Increases the score of the serve by 10% when serve type is Jumping.
|
|
120
|
-
Trait.METEOR_SERVE = new Trait({
|
|
121
|
-
id: 'c929a79d-5866-40d6-bbd6-b0b67a929c4c',
|
|
122
|
-
name: 'Meteor Serve',
|
|
123
|
-
modifier: 1.1,
|
|
124
|
-
chance: 0.1,
|
|
125
|
-
statThreshold: 75,
|
|
126
|
-
stat: 'SERVE',
|
|
127
|
-
weight: 10
|
|
128
|
-
});
|
|
129
|
-
// Has a 50% chance of taking an action without decreasing energy.
|
|
130
|
-
Trait.VIGOROUS = new Trait({
|
|
131
|
-
id: 'f9599b87-b3b2-49ce-8224-470f6fe6ed64',
|
|
132
|
-
name: 'Vigorous',
|
|
133
|
-
modifier: 1,
|
|
134
|
-
statThreshold: 60,
|
|
135
|
-
chance: 0.5,
|
|
136
|
-
stat: 'PHYSICAL',
|
|
137
|
-
weight: 1
|
|
138
|
-
});
|
|
139
|
-
// Takes place of the receiver and increases reception score by 15%, guaranteeing success. Can only trigger in back-row.
|
|
140
|
-
Trait.GUARDIAN = new Trait({
|
|
141
|
-
id: 'c3291953-9256-4559-b5a9-955ccb8f9a6f',
|
|
142
|
-
name: 'Guardian',
|
|
143
|
-
chance: 0.2,
|
|
144
|
-
statThreshold: 75,
|
|
145
|
-
modifier: 1.15,
|
|
146
|
-
stat: 'DEFENSE',
|
|
147
|
-
weight: 10
|
|
148
|
-
});
|
|
57
|
+
exports.assignTraits = assignTraits;
|
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
[
|
|
2
|
+
{
|
|
3
|
+
"role": "SETTER",
|
|
4
|
+
"weight": {
|
|
5
|
+
"serve": 0.2,
|
|
6
|
+
"stamina": 0.05,
|
|
7
|
+
"setting": 0.7,
|
|
8
|
+
"block": 0.05,
|
|
9
|
+
"spike": 0,
|
|
10
|
+
"quick": 0,
|
|
11
|
+
"power": 0,
|
|
12
|
+
"backAttack": 0,
|
|
13
|
+
"awareness": 0,
|
|
14
|
+
"attack": 0,
|
|
15
|
+
"reception": 0,
|
|
16
|
+
"overhand": 0,
|
|
17
|
+
"bump": 0,
|
|
18
|
+
"read": 0,
|
|
19
|
+
"commit": 0,
|
|
20
|
+
"focus": 0,
|
|
21
|
+
"defense": 0,
|
|
22
|
+
"saving": 0
|
|
23
|
+
}
|
|
24
|
+
},
|
|
25
|
+
{
|
|
26
|
+
"role": "LIBERO",
|
|
27
|
+
"weight": {
|
|
28
|
+
"spike": 0,
|
|
29
|
+
"quick": 0,
|
|
30
|
+
"power": 0,
|
|
31
|
+
"backAttack": 0,
|
|
32
|
+
"awareness": 0,
|
|
33
|
+
"attack": 0,
|
|
34
|
+
"serve": 0,
|
|
35
|
+
"stamina": 0.15,
|
|
36
|
+
"setting": 0.15,
|
|
37
|
+
"reception": 0.7,
|
|
38
|
+
"overhand": 0,
|
|
39
|
+
"bump": 0,
|
|
40
|
+
"block": 0,
|
|
41
|
+
"read": 0,
|
|
42
|
+
"commit": 0,
|
|
43
|
+
"focus": 0,
|
|
44
|
+
"defense": 0,
|
|
45
|
+
"saving": 0
|
|
46
|
+
}
|
|
47
|
+
},
|
|
48
|
+
{
|
|
49
|
+
"role": "OUTSIDE_HITTER",
|
|
50
|
+
"weight": {
|
|
51
|
+
"spike": 0.6,
|
|
52
|
+
"quick": 0,
|
|
53
|
+
"power": 0,
|
|
54
|
+
"backAttack": 0.2,
|
|
55
|
+
"awareness": 0,
|
|
56
|
+
"attack": 0,
|
|
57
|
+
"serve": 0.15,
|
|
58
|
+
"stamina": 0.05,
|
|
59
|
+
"setting": 0,
|
|
60
|
+
"reception": 0,
|
|
61
|
+
"overhand": 0,
|
|
62
|
+
"bump": 0,
|
|
63
|
+
"block": 0,
|
|
64
|
+
"read": 0,
|
|
65
|
+
"commit": 0,
|
|
66
|
+
"focus": 0,
|
|
67
|
+
"defense": 0,
|
|
68
|
+
"saving": 0
|
|
69
|
+
}
|
|
70
|
+
},
|
|
71
|
+
{
|
|
72
|
+
"role": "OPPOSITE_HITTER",
|
|
73
|
+
"weight": {
|
|
74
|
+
"spike": 0.3,
|
|
75
|
+
"quick": 0,
|
|
76
|
+
"power": 0,
|
|
77
|
+
"backAttack": 0.1,
|
|
78
|
+
"awareness": 0,
|
|
79
|
+
"attack": 0,
|
|
80
|
+
"serve": 0.1,
|
|
81
|
+
"stamina": 0.1,
|
|
82
|
+
"setting": 0,
|
|
83
|
+
"reception": 0.2,
|
|
84
|
+
"overhand": 0,
|
|
85
|
+
"bump": 0,
|
|
86
|
+
"block": 0.2,
|
|
87
|
+
"read": 0,
|
|
88
|
+
"commit": 0,
|
|
89
|
+
"focus": 0,
|
|
90
|
+
"defense": 0,
|
|
91
|
+
"saving": 0
|
|
92
|
+
}
|
|
93
|
+
},
|
|
94
|
+
{
|
|
95
|
+
"role": "MIDDLE_BLOCKER",
|
|
96
|
+
"weight": {
|
|
97
|
+
"spike": 0.2,
|
|
98
|
+
"quick": 0,
|
|
99
|
+
"power": 0,
|
|
100
|
+
"backAttack": 0,
|
|
101
|
+
"awareness": 0,
|
|
102
|
+
"attack": 0,
|
|
103
|
+
"serve": 0,
|
|
104
|
+
"stamina": 0.1,
|
|
105
|
+
"setting": 0,
|
|
106
|
+
"reception": 0,
|
|
107
|
+
"overhand": 0,
|
|
108
|
+
"bump": 0,
|
|
109
|
+
"block": 0.7,
|
|
110
|
+
"read": 0,
|
|
111
|
+
"commit": 0,
|
|
112
|
+
"focus": 0,
|
|
113
|
+
"defense": 0,
|
|
114
|
+
"saving": 0
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
]
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
[
|
|
2
|
+
{
|
|
3
|
+
"name": "MASTER_MIND",
|
|
4
|
+
"modifier": 1.1,
|
|
5
|
+
"chance": 0.2,
|
|
6
|
+
"statThreshold": 80,
|
|
7
|
+
"stat": "SET",
|
|
8
|
+
"weight": 10
|
|
9
|
+
},
|
|
10
|
+
{
|
|
11
|
+
"name": "MOVING_WALL",
|
|
12
|
+
"modifier": 1.1,
|
|
13
|
+
"chance": 1,
|
|
14
|
+
"statThreshold": 75,
|
|
15
|
+
"stat": "BLOCK",
|
|
16
|
+
"weight": 5
|
|
17
|
+
},
|
|
18
|
+
{
|
|
19
|
+
"name": "MARKSMAN",
|
|
20
|
+
"modifier": 1.05,
|
|
21
|
+
"chance": 0.3,
|
|
22
|
+
"statThreshold": 75,
|
|
23
|
+
"stat": "ATTACK",
|
|
24
|
+
"weight": 5
|
|
25
|
+
},
|
|
26
|
+
{
|
|
27
|
+
"name": "METEOR_SERVE",
|
|
28
|
+
"modifier": 1.1,
|
|
29
|
+
"chance": 0.1,
|
|
30
|
+
"statThreshold": 75,
|
|
31
|
+
"stat": "SERVE",
|
|
32
|
+
"weight": 10
|
|
33
|
+
},
|
|
34
|
+
{
|
|
35
|
+
"name": "FLOAT_SERVE",
|
|
36
|
+
"modifier": 1,
|
|
37
|
+
"chance": 0.5,
|
|
38
|
+
"statThreshold": 60,
|
|
39
|
+
"stat": "SERVE",
|
|
40
|
+
"weight": 10
|
|
41
|
+
},
|
|
42
|
+
{
|
|
43
|
+
"name": "VIGOROUS",
|
|
44
|
+
"modifier": 1,
|
|
45
|
+
"statThreshold": 60,
|
|
46
|
+
"chance": 0.5,
|
|
47
|
+
"stat": "STAMINA",
|
|
48
|
+
"weight": 1
|
|
49
|
+
},
|
|
50
|
+
{
|
|
51
|
+
"name": "GUARDIAN",
|
|
52
|
+
"chance": 0.2,
|
|
53
|
+
"statThreshold": 75,
|
|
54
|
+
"modifier": 1.15,
|
|
55
|
+
"stat": "RECEIVE",
|
|
56
|
+
"weight": 10
|
|
57
|
+
}
|
|
58
|
+
]
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { CoachModel, CompetitionChampionModel, CompetitionMatchModel, CompetitionModel, CompetitionTeamsModel, CountryModel, DraftModel, DraftPickModel, IterationModel, LeagueModel, LeagueSeasonModel, MatchModel, MatchRatingModel, MatchResultModel, MatchSetModel, MatchSetStatsModel, PerformanceStatsModel, PlayerModel, PlayerTeamModel,
|
|
1
|
+
import { CoachModel, CompetitionChampionModel, CompetitionMatchModel, CompetitionModel, CompetitionTeamsModel, CountryModel, DraftModel, DraftPickModel, IterationModel, LeagueModel, LeagueSeasonModel, MatchModel, MatchRatingModel, MatchResultModel, MatchSetModel, MatchSetStatsModel, PerformanceStatsModel, PlayerModel, PlayerTeamModel, RallyModel, SetPositionModel, TeamModel, UserModel } from './models';
|
|
2
2
|
export function initModels(sequelize) {
|
|
3
3
|
const Coach = CoachModel.initModel(sequelize);
|
|
4
4
|
const Country = CountryModel.initModel(sequelize);
|
|
@@ -19,11 +19,9 @@ export function initModels(sequelize) {
|
|
|
19
19
|
const PerformanceStats = PerformanceStatsModel.initModel(sequelize);
|
|
20
20
|
const Player = PlayerModel.initModel(sequelize);
|
|
21
21
|
const PlayerTeam = PlayerTeamModel.initModel(sequelize);
|
|
22
|
-
const PlayerTrait = PlayerTraitModel.initModel(sequelize);
|
|
23
22
|
const Rally = RallyModel.initModel(sequelize);
|
|
24
23
|
const SetPosition = SetPositionModel.initModel(sequelize);
|
|
25
24
|
const Team = TeamModel.initModel(sequelize);
|
|
26
|
-
const Trait = TraitModel.initModel(sequelize);
|
|
27
25
|
const User = UserModel.initModel(sequelize);
|
|
28
26
|
Coach.belongsTo(Country, { as: 'country', foreignKey: 'country_id' });
|
|
29
27
|
Coach.hasMany(Team, { as: 'Teams', foreignKey: 'coach_id' });
|
|
@@ -112,22 +110,13 @@ export function initModels(sequelize) {
|
|
|
112
110
|
foreignKey: 'player_id',
|
|
113
111
|
otherKey: 'team_id'
|
|
114
112
|
});
|
|
115
|
-
Player.belongsToMany(Trait, {
|
|
116
|
-
as: 'Traits',
|
|
117
|
-
through: PlayerTrait,
|
|
118
|
-
foreignKey: 'player_id',
|
|
119
|
-
otherKey: 'trait_id'
|
|
120
|
-
});
|
|
121
113
|
Player.hasMany(MatchSetStats, { as: 'MatchSetStats', foreignKey: 'player_id' });
|
|
122
114
|
Player.hasMany(PlayerTeam, { as: 'PlayerTeams', foreignKey: 'player_id' });
|
|
123
|
-
Player.hasMany(PlayerTrait, { as: 'PlayerTraits', foreignKey: 'player_id' });
|
|
124
115
|
Player.hasMany(SetPosition, { as: 'SetPositions', foreignKey: 'player_id' });
|
|
125
116
|
Player.hasOne(DraftPick, { as: 'DraftPick', foreignKey: 'player_id' });
|
|
126
117
|
Player.hasOne(PerformanceStats, { as: 'PerformanceStat', foreignKey: 'player_id' });
|
|
127
118
|
PlayerTeam.belongsTo(Player, { as: 'player', foreignKey: 'player_id' });
|
|
128
119
|
PlayerTeam.belongsTo(Team, { as: 'team', foreignKey: 'team_id' });
|
|
129
|
-
PlayerTrait.belongsTo(Player, { as: 'player', foreignKey: 'player_id' });
|
|
130
|
-
PlayerTrait.belongsTo(Trait, { as: 'trait', foreignKey: 'trait_id' });
|
|
131
120
|
Rally.belongsTo(MatchSet, { as: 'matchSet', foreignKey: 'match_set_id' });
|
|
132
121
|
Rally.belongsTo(Team, { as: 'ServingTeam', foreignKey: 'serving_team' });
|
|
133
122
|
SetPosition.belongsTo(MatchSet, { as: 'matchSet', foreignKey: 'match_set_id' });
|
|
@@ -162,13 +151,6 @@ export function initModels(sequelize) {
|
|
|
162
151
|
Team.hasMany(PlayerTeam, { as: 'PlayerTeams', foreignKey: 'team_id' });
|
|
163
152
|
Team.hasMany(Rally, { as: 'Rallies', foreignKey: 'serving_team' });
|
|
164
153
|
Team.hasMany(MatchResult, { as: 'WonMatches', foreignKey: 'winner_team_id' });
|
|
165
|
-
Trait.belongsToMany(Player, {
|
|
166
|
-
as: 'Players',
|
|
167
|
-
through: PlayerTrait,
|
|
168
|
-
foreignKey: 'trait_id',
|
|
169
|
-
otherKey: 'player_id'
|
|
170
|
-
});
|
|
171
|
-
Trait.hasMany(PlayerTrait, { as: 'PlayerTraits', foreignKey: 'trait_id' });
|
|
172
154
|
return {
|
|
173
155
|
Coach,
|
|
174
156
|
Competition,
|
|
@@ -178,7 +160,6 @@ export function initModels(sequelize) {
|
|
|
178
160
|
Country,
|
|
179
161
|
Draft,
|
|
180
162
|
DraftPick,
|
|
181
|
-
Event,
|
|
182
163
|
Iteration,
|
|
183
164
|
League,
|
|
184
165
|
LeagueSeason,
|
|
@@ -190,11 +171,9 @@ export function initModels(sequelize) {
|
|
|
190
171
|
PerformanceStats,
|
|
191
172
|
Player,
|
|
192
173
|
PlayerTeam,
|
|
193
|
-
PlayerTrait,
|
|
194
174
|
Rally,
|
|
195
175
|
SetPosition,
|
|
196
176
|
Team,
|
|
197
|
-
Trait,
|
|
198
177
|
User
|
|
199
178
|
};
|
|
200
179
|
}
|
|
@@ -17,9 +17,7 @@ export * from './match-set-stats';
|
|
|
17
17
|
export * from './performance-stats';
|
|
18
18
|
export * from './player';
|
|
19
19
|
export * from './player-team';
|
|
20
|
-
export * from './player-trait';
|
|
21
20
|
export * from './rally';
|
|
22
21
|
export * from './set-position';
|
|
23
22
|
export * from './team';
|
|
24
|
-
export * from './trait';
|
|
25
23
|
export * from './user';
|
|
@@ -17,9 +17,7 @@ export * from './match-set-stats';
|
|
|
17
17
|
export * from './performance-stats';
|
|
18
18
|
export * from './player';
|
|
19
19
|
export * from './player-team';
|
|
20
|
-
export * from './player-trait';
|
|
21
20
|
export * from './rally';
|
|
22
21
|
export * from './set-position';
|
|
23
22
|
export * from './team';
|
|
24
|
-
export * from './trait';
|
|
25
23
|
export * from './user';
|
|
@@ -1,37 +1,50 @@
|
|
|
1
1
|
import * as Sequelize from 'sequelize';
|
|
2
|
-
import { Model
|
|
2
|
+
import { Model } from 'sequelize';
|
|
3
3
|
import { PlayerId, PlayerModel } from '.';
|
|
4
4
|
export interface PerformanceStatsAttributes {
|
|
5
5
|
player_id: string;
|
|
6
6
|
setting: number;
|
|
7
|
-
|
|
8
|
-
reception: number;
|
|
7
|
+
serve: number;
|
|
9
8
|
spike: number;
|
|
9
|
+
quick: number;
|
|
10
|
+
power: number;
|
|
11
|
+
awareness: number;
|
|
12
|
+
attack: number;
|
|
10
13
|
back_attack: number;
|
|
11
|
-
|
|
14
|
+
reception: number;
|
|
15
|
+
overhand: number;
|
|
16
|
+
bump: number;
|
|
12
17
|
block: number;
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
18
|
+
read: number;
|
|
19
|
+
commit: number;
|
|
20
|
+
focus: number;
|
|
16
21
|
defense: number;
|
|
22
|
+
stamina: number;
|
|
23
|
+
saving: number;
|
|
17
24
|
}
|
|
18
25
|
export type PerformanceStatsPk = 'player_id';
|
|
19
26
|
export type PerformanceStatsId = PerformanceStatsModel[PerformanceStatsPk];
|
|
20
|
-
export type
|
|
21
|
-
export type PerformanceStatsCreationAttributes = Optional<PerformanceStatsAttributes, PerformanceStatsOptionalAttributes>;
|
|
27
|
+
export type PerformanceStatsCreationAttributes = PerformanceStatsAttributes;
|
|
22
28
|
export declare class PerformanceStatsModel extends Model<PerformanceStatsAttributes, PerformanceStatsCreationAttributes> implements PerformanceStatsAttributes {
|
|
23
29
|
player_id: string;
|
|
24
30
|
setting: number;
|
|
25
|
-
|
|
26
|
-
reception: number;
|
|
31
|
+
serve: number;
|
|
27
32
|
spike: number;
|
|
33
|
+
quick: number;
|
|
34
|
+
power: number;
|
|
35
|
+
awareness: number;
|
|
36
|
+
attack: number;
|
|
28
37
|
back_attack: number;
|
|
29
|
-
|
|
38
|
+
reception: number;
|
|
39
|
+
overhand: number;
|
|
40
|
+
bump: number;
|
|
30
41
|
block: number;
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
42
|
+
read: number;
|
|
43
|
+
commit: number;
|
|
44
|
+
focus: number;
|
|
34
45
|
defense: number;
|
|
46
|
+
stamina: number;
|
|
47
|
+
saving: number;
|
|
35
48
|
player: PlayerModel;
|
|
36
49
|
getPlayer: Sequelize.BelongsToGetAssociationMixin<PlayerModel>;
|
|
37
50
|
setPlayer: Sequelize.BelongsToSetAssociationMixin<PlayerModel, PlayerId>;
|
|
@@ -16,17 +16,32 @@ export class PerformanceStatsModel extends Model {
|
|
|
16
16
|
allowNull: false,
|
|
17
17
|
defaultValue: 0
|
|
18
18
|
},
|
|
19
|
-
|
|
19
|
+
serve: {
|
|
20
20
|
type: DataTypes.INTEGER,
|
|
21
21
|
allowNull: false,
|
|
22
22
|
defaultValue: 0
|
|
23
23
|
},
|
|
24
|
-
|
|
24
|
+
spike: {
|
|
25
25
|
type: DataTypes.INTEGER,
|
|
26
26
|
allowNull: false,
|
|
27
27
|
defaultValue: 0
|
|
28
28
|
},
|
|
29
|
-
|
|
29
|
+
quick: {
|
|
30
|
+
type: DataTypes.INTEGER,
|
|
31
|
+
allowNull: false,
|
|
32
|
+
defaultValue: 0
|
|
33
|
+
},
|
|
34
|
+
power: {
|
|
35
|
+
type: DataTypes.INTEGER,
|
|
36
|
+
allowNull: false,
|
|
37
|
+
defaultValue: 0
|
|
38
|
+
},
|
|
39
|
+
awareness: {
|
|
40
|
+
type: DataTypes.INTEGER,
|
|
41
|
+
allowNull: false,
|
|
42
|
+
defaultValue: 0
|
|
43
|
+
},
|
|
44
|
+
attack: {
|
|
30
45
|
type: DataTypes.INTEGER,
|
|
31
46
|
allowNull: false,
|
|
32
47
|
defaultValue: 0
|
|
@@ -36,7 +51,17 @@ export class PerformanceStatsModel extends Model {
|
|
|
36
51
|
allowNull: false,
|
|
37
52
|
defaultValue: 0
|
|
38
53
|
},
|
|
39
|
-
|
|
54
|
+
reception: {
|
|
55
|
+
type: DataTypes.INTEGER,
|
|
56
|
+
allowNull: false,
|
|
57
|
+
defaultValue: 0
|
|
58
|
+
},
|
|
59
|
+
overhand: {
|
|
60
|
+
type: DataTypes.INTEGER,
|
|
61
|
+
allowNull: false,
|
|
62
|
+
defaultValue: 0
|
|
63
|
+
},
|
|
64
|
+
bump: {
|
|
40
65
|
type: DataTypes.INTEGER,
|
|
41
66
|
allowNull: false,
|
|
42
67
|
defaultValue: 0
|
|
@@ -46,17 +71,17 @@ export class PerformanceStatsModel extends Model {
|
|
|
46
71
|
allowNull: false,
|
|
47
72
|
defaultValue: 0
|
|
48
73
|
},
|
|
49
|
-
|
|
74
|
+
read: {
|
|
50
75
|
type: DataTypes.INTEGER,
|
|
51
76
|
allowNull: false,
|
|
52
77
|
defaultValue: 0
|
|
53
78
|
},
|
|
54
|
-
|
|
79
|
+
commit: {
|
|
55
80
|
type: DataTypes.INTEGER,
|
|
56
81
|
allowNull: false,
|
|
57
82
|
defaultValue: 0
|
|
58
83
|
},
|
|
59
|
-
|
|
84
|
+
focus: {
|
|
60
85
|
type: DataTypes.INTEGER,
|
|
61
86
|
allowNull: false,
|
|
62
87
|
defaultValue: 0
|
|
@@ -65,6 +90,16 @@ export class PerformanceStatsModel extends Model {
|
|
|
65
90
|
type: DataTypes.INTEGER,
|
|
66
91
|
allowNull: false,
|
|
67
92
|
defaultValue: 0
|
|
93
|
+
},
|
|
94
|
+
stamina: {
|
|
95
|
+
type: DataTypes.INTEGER,
|
|
96
|
+
allowNull: false,
|
|
97
|
+
defaultValue: 0
|
|
98
|
+
},
|
|
99
|
+
saving: {
|
|
100
|
+
type: DataTypes.INTEGER,
|
|
101
|
+
allowNull: false,
|
|
102
|
+
defaultValue: 0
|
|
68
103
|
}
|
|
69
104
|
}, {
|
|
70
105
|
sequelize,
|