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.
Files changed (99) hide show
  1. package/dist/cjs/src/data/init-models.js +0 -21
  2. package/dist/cjs/src/data/models/index.d.ts +0 -2
  3. package/dist/cjs/src/data/models/index.js +0 -2
  4. package/dist/cjs/src/data/models/performance-stats.d.ts +28 -15
  5. package/dist/cjs/src/data/models/performance-stats.js +42 -7
  6. package/dist/cjs/src/data/models/player.d.ts +8 -30
  7. package/dist/cjs/src/data/models/player.js +6 -2
  8. package/dist/cjs/src/data/transformers/index.d.ts +0 -2
  9. package/dist/cjs/src/data/transformers/index.js +0 -2
  10. package/dist/cjs/src/data/transformers/performance-stats.js +25 -11
  11. package/dist/cjs/src/data/transformers/player.js +4 -3
  12. package/dist/cjs/src/index.d.ts +0 -1
  13. package/dist/cjs/src/index.js +0 -1
  14. package/dist/cjs/src/service/coach/formation.js +57 -57
  15. package/dist/cjs/src/service/player/index.d.ts +2 -1
  16. package/dist/cjs/src/service/player/index.js +2 -1
  17. package/dist/cjs/src/service/player/performance-stats.d.ts +5 -25
  18. package/dist/cjs/src/service/player/performance-stats.js +10 -29
  19. package/dist/cjs/src/service/player/player.d.ts +4 -5
  20. package/dist/cjs/src/service/player/player.js +21 -41
  21. package/dist/cjs/src/service/player/rarity.d.ts +4 -1
  22. package/dist/cjs/src/service/player/rarity.js +16 -14
  23. package/dist/cjs/src/service/player/role.d.ts +16 -15
  24. package/dist/cjs/src/service/player/role.js +43 -39
  25. package/dist/cjs/src/service/player/stats.d.ts +12 -0
  26. package/dist/cjs/src/service/player/stats.js +67 -0
  27. package/dist/cjs/src/service/player/trait.d.ts +12 -19
  28. package/dist/cjs/src/service/player/trait.js +49 -140
  29. package/dist/cjs/src/stat-config/roles.json +117 -0
  30. package/dist/cjs/src/stat-config/traits.json +58 -0
  31. package/dist/esm/src/data/init-models.js +1 -22
  32. package/dist/esm/src/data/models/index.d.ts +0 -2
  33. package/dist/esm/src/data/models/index.js +0 -2
  34. package/dist/esm/src/data/models/performance-stats.d.ts +28 -15
  35. package/dist/esm/src/data/models/performance-stats.js +42 -7
  36. package/dist/esm/src/data/models/player.d.ts +8 -30
  37. package/dist/esm/src/data/models/player.js +7 -3
  38. package/dist/esm/src/data/transformers/index.d.ts +0 -2
  39. package/dist/esm/src/data/transformers/index.js +0 -2
  40. package/dist/esm/src/data/transformers/performance-stats.js +25 -11
  41. package/dist/esm/src/data/transformers/player.js +5 -4
  42. package/dist/esm/src/index.d.ts +0 -1
  43. package/dist/esm/src/index.js +0 -1
  44. package/dist/esm/src/service/coach/formation.js +58 -58
  45. package/dist/esm/src/service/player/index.d.ts +2 -1
  46. package/dist/esm/src/service/player/index.js +2 -1
  47. package/dist/esm/src/service/player/performance-stats.d.ts +5 -25
  48. package/dist/esm/src/service/player/performance-stats.js +9 -28
  49. package/dist/esm/src/service/player/player.d.ts +4 -5
  50. package/dist/esm/src/service/player/player.js +21 -18
  51. package/dist/esm/src/service/player/rarity.d.ts +4 -1
  52. package/dist/esm/src/service/player/rarity.js +15 -13
  53. package/dist/esm/src/service/player/role.d.ts +16 -15
  54. package/dist/esm/src/service/player/role.js +37 -37
  55. package/dist/esm/src/service/player/stats.d.ts +12 -0
  56. package/dist/esm/src/service/player/stats.js +62 -0
  57. package/dist/esm/src/service/player/trait.d.ts +12 -19
  58. package/dist/esm/src/service/player/trait.js +46 -117
  59. package/dist/esm/src/stat-config/roles.json +117 -0
  60. package/dist/esm/src/stat-config/traits.json +58 -0
  61. package/package.json +1 -1
  62. package/dist/cjs/src/data/models/player-trait.d.ts +0 -23
  63. package/dist/cjs/src/data/models/player-trait.js +0 -42
  64. package/dist/cjs/src/data/models/trait.d.ts +0 -37
  65. package/dist/cjs/src/data/models/trait.js +0 -30
  66. package/dist/cjs/src/data/transformers/role.d.ts +0 -5
  67. package/dist/cjs/src/data/transformers/role.js +0 -25
  68. package/dist/cjs/src/data/transformers/trait.d.ts +0 -5
  69. package/dist/cjs/src/data/transformers/trait.js +0 -19
  70. package/dist/cjs/src/formula/event.formula.json +0 -125
  71. package/dist/cjs/src/formula/events.d.ts +0 -125
  72. package/dist/cjs/src/formula/events.js +0 -8
  73. package/dist/cjs/src/formula/index.d.ts +0 -3
  74. package/dist/cjs/src/formula/index.js +0 -19
  75. package/dist/cjs/src/formula/role.formula.json +0 -82
  76. package/dist/cjs/src/formula/roles.d.ts +0 -20
  77. package/dist/cjs/src/formula/roles.js +0 -9
  78. package/dist/cjs/src/formula/stat.formula.json +0 -66
  79. package/dist/cjs/src/formula/stats.d.ts +0 -10
  80. package/dist/cjs/src/formula/stats.js +0 -18
  81. package/dist/esm/src/data/models/player-trait.d.ts +0 -23
  82. package/dist/esm/src/data/models/player-trait.js +0 -38
  83. package/dist/esm/src/data/models/trait.d.ts +0 -37
  84. package/dist/esm/src/data/models/trait.js +0 -26
  85. package/dist/esm/src/data/transformers/role.d.ts +0 -5
  86. package/dist/esm/src/data/transformers/role.js +0 -21
  87. package/dist/esm/src/data/transformers/trait.d.ts +0 -5
  88. package/dist/esm/src/data/transformers/trait.js +0 -15
  89. package/dist/esm/src/formula/event.formula.json +0 -125
  90. package/dist/esm/src/formula/events.d.ts +0 -125
  91. package/dist/esm/src/formula/events.js +0 -2
  92. package/dist/esm/src/formula/index.d.ts +0 -3
  93. package/dist/esm/src/formula/index.js +0 -3
  94. package/dist/esm/src/formula/role.formula.json +0 -82
  95. package/dist/esm/src/formula/roles.d.ts +0 -20
  96. package/dist/esm/src/formula/roles.js +0 -3
  97. package/dist/esm/src/formula/stat.formula.json +0 -66
  98. package/dist/esm/src/formula/stats.d.ts +0 -10
  99. package/dist/esm/src/formula/stats.js +0 -11
@@ -1,148 +1,57 @@
1
1
  "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
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.Trait = void 0;
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
- class Trait {
31
- constructor({ id, name, modifier, chance, statThreshold, stat, weight }) {
32
- this.id = id;
33
- this.name = name;
34
- this.modifier = modifier;
35
- this.chance = chance;
36
- this.statThreshold = statThreshold;
37
- this.stat = stat;
38
- this.weight = weight;
39
- }
40
- static getTraits() {
41
- return [Trait.GUARDIAN, Trait.MARKSMAN, Trait.METEOR_SERVE, Trait.VIGOROUS, Trait.MOVING_WALL, Trait.MASTER_MIND];
42
- }
43
- static assignTraits(performanceStats, rarity) {
44
- let traitCount;
45
- switch (rarity) {
46
- case rarity_1.Rarity.COMMON: {
47
- traitCount = 0;
48
- break;
49
- }
50
- case rarity_1.Rarity.RARE: {
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
- if (traitCount < 1)
70
- return [];
71
- const qualifiedTraits = this.getTraits()
72
- .filter(trait => GeneralStat.calculateScore(performanceStats, trait.stat) >= trait.statThreshold);
73
- return qualifiedTraits.sort((t1, t2) => t2.weight - t1.weight)
74
- .slice(0, traitCount);
75
- }
76
- toString() {
77
- return JSON.stringify({
78
- name: this.name,
79
- modifier: this.modifier,
80
- statThreshold: this.statThreshold,
81
- chance: this.chance,
82
- stat: this.stat,
83
- weight: this.weight
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.Trait = Trait;
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, PlayerTraitModel, RallyModel, SetPositionModel, TeamModel, TraitModel, UserModel } from './models';
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, Optional } from 'sequelize';
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
- pass: number;
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
- jump: number;
14
+ reception: number;
15
+ overhand: number;
16
+ bump: number;
12
17
  block: number;
13
- awareness: number;
14
- serve: number;
15
- stamina: number;
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 PerformanceStatsOptionalAttributes = 'setting' | 'pass' | 'reception' | 'spike' | 'back_attack' | 'jump' | 'block' | 'awareness' | 'serve' | 'stamina' | 'defense';
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
- pass: number;
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
- jump: number;
38
+ reception: number;
39
+ overhand: number;
40
+ bump: number;
30
41
  block: number;
31
- awareness: number;
32
- serve: number;
33
- stamina: number;
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
- pass: {
19
+ serve: {
20
20
  type: DataTypes.INTEGER,
21
21
  allowNull: false,
22
22
  defaultValue: 0
23
23
  },
24
- reception: {
24
+ spike: {
25
25
  type: DataTypes.INTEGER,
26
26
  allowNull: false,
27
27
  defaultValue: 0
28
28
  },
29
- spike: {
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
- jump: {
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
- awareness: {
74
+ read: {
50
75
  type: DataTypes.INTEGER,
51
76
  allowNull: false,
52
77
  defaultValue: 0
53
78
  },
54
- serve: {
79
+ commit: {
55
80
  type: DataTypes.INTEGER,
56
81
  allowNull: false,
57
82
  defaultValue: 0
58
83
  },
59
- stamina: {
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,