volleyballsimtypes 0.0.166 → 0.0.168

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 (87) 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 +2 -0
  5. package/dist/cjs/src/data/models/performance-stats.js +5 -0
  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 +4 -2
  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 +1 -1
  18. package/dist/cjs/src/service/player/performance-stats.js +1 -1
  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/{formula → service/player}/stats.js +18 -10
  27. package/dist/cjs/src/service/player/trait.d.ts +19 -15
  28. package/dist/cjs/src/service/player/trait.js +50 -140
  29. package/dist/cjs/src/{formula/role.formula.json → stat-config/roles.json} +10 -5
  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 +2 -0
  35. package/dist/esm/src/data/models/performance-stats.js +5 -0
  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 +4 -2
  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 +1 -1
  48. package/dist/esm/src/service/player/performance-stats.js +1 -1
  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/{formula → service/player}/stats.js +16 -8
  57. package/dist/esm/src/service/player/trait.d.ts +19 -15
  58. package/dist/esm/src/service/player/trait.js +47 -117
  59. package/dist/esm/src/{formula/role.formula.json → stat-config/roles.json} +10 -5
  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/index.d.ts +0 -2
  71. package/dist/cjs/src/formula/index.js +0 -18
  72. package/dist/cjs/src/formula/roles.d.ts +0 -9
  73. package/dist/cjs/src/formula/roles.js +0 -9
  74. package/dist/cjs/src/formula/stats.d.ts +0 -6
  75. package/dist/esm/src/data/models/player-trait.d.ts +0 -23
  76. package/dist/esm/src/data/models/player-trait.js +0 -38
  77. package/dist/esm/src/data/models/trait.d.ts +0 -37
  78. package/dist/esm/src/data/models/trait.js +0 -26
  79. package/dist/esm/src/data/transformers/role.d.ts +0 -5
  80. package/dist/esm/src/data/transformers/role.js +0 -21
  81. package/dist/esm/src/data/transformers/trait.d.ts +0 -5
  82. package/dist/esm/src/data/transformers/trait.js +0 -15
  83. package/dist/esm/src/formula/index.d.ts +0 -2
  84. package/dist/esm/src/formula/index.js +0 -2
  85. package/dist/esm/src/formula/roles.d.ts +0 -9
  86. package/dist/esm/src/formula/roles.js +0 -3
  87. package/dist/esm/src/formula/stats.d.ts +0 -6
@@ -22,11 +22,9 @@ function initModels(sequelize) {
22
22
  const PerformanceStats = models_1.PerformanceStatsModel.initModel(sequelize);
23
23
  const Player = models_1.PlayerModel.initModel(sequelize);
24
24
  const PlayerTeam = models_1.PlayerTeamModel.initModel(sequelize);
25
- const PlayerTrait = models_1.PlayerTraitModel.initModel(sequelize);
26
25
  const Rally = models_1.RallyModel.initModel(sequelize);
27
26
  const SetPosition = models_1.SetPositionModel.initModel(sequelize);
28
27
  const Team = models_1.TeamModel.initModel(sequelize);
29
- const Trait = models_1.TraitModel.initModel(sequelize);
30
28
  const User = models_1.UserModel.initModel(sequelize);
31
29
  Coach.belongsTo(Country, { as: 'country', foreignKey: 'country_id' });
32
30
  Coach.hasMany(Team, { as: 'Teams', foreignKey: 'coach_id' });
@@ -115,22 +113,13 @@ function initModels(sequelize) {
115
113
  foreignKey: 'player_id',
116
114
  otherKey: 'team_id'
117
115
  });
118
- Player.belongsToMany(Trait, {
119
- as: 'Traits',
120
- through: PlayerTrait,
121
- foreignKey: 'player_id',
122
- otherKey: 'trait_id'
123
- });
124
116
  Player.hasMany(MatchSetStats, { as: 'MatchSetStats', foreignKey: 'player_id' });
125
117
  Player.hasMany(PlayerTeam, { as: 'PlayerTeams', foreignKey: 'player_id' });
126
- Player.hasMany(PlayerTrait, { as: 'PlayerTraits', foreignKey: 'player_id' });
127
118
  Player.hasMany(SetPosition, { as: 'SetPositions', foreignKey: 'player_id' });
128
119
  Player.hasOne(DraftPick, { as: 'DraftPick', foreignKey: 'player_id' });
129
120
  Player.hasOne(PerformanceStats, { as: 'PerformanceStat', foreignKey: 'player_id' });
130
121
  PlayerTeam.belongsTo(Player, { as: 'player', foreignKey: 'player_id' });
131
122
  PlayerTeam.belongsTo(Team, { as: 'team', foreignKey: 'team_id' });
132
- PlayerTrait.belongsTo(Player, { as: 'player', foreignKey: 'player_id' });
133
- PlayerTrait.belongsTo(Trait, { as: 'trait', foreignKey: 'trait_id' });
134
123
  Rally.belongsTo(MatchSet, { as: 'matchSet', foreignKey: 'match_set_id' });
135
124
  Rally.belongsTo(Team, { as: 'ServingTeam', foreignKey: 'serving_team' });
136
125
  SetPosition.belongsTo(MatchSet, { as: 'matchSet', foreignKey: 'match_set_id' });
@@ -165,13 +154,6 @@ function initModels(sequelize) {
165
154
  Team.hasMany(PlayerTeam, { as: 'PlayerTeams', foreignKey: 'team_id' });
166
155
  Team.hasMany(Rally, { as: 'Rallies', foreignKey: 'serving_team' });
167
156
  Team.hasMany(MatchResult, { as: 'WonMatches', foreignKey: 'winner_team_id' });
168
- Trait.belongsToMany(Player, {
169
- as: 'Players',
170
- through: PlayerTrait,
171
- foreignKey: 'trait_id',
172
- otherKey: 'player_id'
173
- });
174
- Trait.hasMany(PlayerTrait, { as: 'PlayerTraits', foreignKey: 'trait_id' });
175
157
  return {
176
158
  Coach,
177
159
  Competition,
@@ -181,7 +163,6 @@ function initModels(sequelize) {
181
163
  Country,
182
164
  Draft,
183
165
  DraftPick,
184
- Event,
185
166
  Iteration,
186
167
  League,
187
168
  LeagueSeason,
@@ -193,11 +174,9 @@ function initModels(sequelize) {
193
174
  PerformanceStats,
194
175
  Player,
195
176
  PlayerTeam,
196
- PlayerTrait,
197
177
  Rally,
198
178
  SetPosition,
199
179
  Team,
200
- Trait,
201
180
  User
202
181
  };
203
182
  }
@@ -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';
@@ -33,9 +33,7 @@ __exportStar(require("./match-set-stats"), exports);
33
33
  __exportStar(require("./performance-stats"), exports);
34
34
  __exportStar(require("./player"), exports);
35
35
  __exportStar(require("./player-team"), exports);
36
- __exportStar(require("./player-trait"), exports);
37
36
  __exportStar(require("./rally"), exports);
38
37
  __exportStar(require("./set-position"), exports);
39
38
  __exportStar(require("./team"), exports);
40
- __exportStar(require("./trait"), exports);
41
39
  __exportStar(require("./user"), exports);
@@ -20,6 +20,7 @@ export interface PerformanceStatsAttributes {
20
20
  focus: number;
21
21
  defense: number;
22
22
  stamina: number;
23
+ saving: number;
23
24
  }
24
25
  export type PerformanceStatsPk = 'player_id';
25
26
  export type PerformanceStatsId = PerformanceStatsModel[PerformanceStatsPk];
@@ -43,6 +44,7 @@ export declare class PerformanceStatsModel extends Model<PerformanceStatsAttribu
43
44
  focus: number;
44
45
  defense: number;
45
46
  stamina: number;
47
+ saving: number;
46
48
  player: PlayerModel;
47
49
  getPlayer: Sequelize.BelongsToGetAssociationMixin<PlayerModel>;
48
50
  setPlayer: Sequelize.BelongsToSetAssociationMixin<PlayerModel, PlayerId>;
@@ -98,6 +98,11 @@ class PerformanceStatsModel extends sequelize_1.Model {
98
98
  type: sequelize_1.DataTypes.INTEGER,
99
99
  allowNull: false,
100
100
  defaultValue: 0
101
+ },
102
+ saving: {
103
+ type: sequelize_1.DataTypes.INTEGER,
104
+ allowNull: false,
105
+ defaultValue: 0
101
106
  }
102
107
  }, {
103
108
  sequelize,
@@ -1,11 +1,12 @@
1
1
  import * as Sequelize from 'sequelize';
2
2
  import { Model } from 'sequelize';
3
- import { CountryId, CountryModel, DraftPickId, DraftPickModel, MatchSetId, MatchSetModel, MatchSetStatsAttributes, MatchSetStatsId, MatchSetStatsModel, PerformanceStatsAttributes, PerformanceStatsId, PerformanceStatsModel, PlayerTeamId, PlayerTeamModel, PlayerTraitId, PlayerTraitModel, SetPositionId, SetPositionModel, TeamId, TeamModel, TraitId, TraitModel } from '.';
4
- import { Rarity } from '../../service';
3
+ import { CountryId, CountryModel, DraftPickId, DraftPickModel, MatchSetId, MatchSetModel, MatchSetStatsAttributes, MatchSetStatsId, MatchSetStatsModel, PerformanceStatsAttributes, PerformanceStatsId, PerformanceStatsModel, PlayerTeamId, PlayerTeamModel, SetPositionId, SetPositionModel, TeamId, TeamModel } from '.';
4
+ import { Rarity, Role, Trait } from '../../service';
5
5
  export interface PlayerAttributes {
6
6
  player_id: string;
7
- roles: RoleType[];
8
- rarity: PlayerRarity;
7
+ roles: Role[];
8
+ traits: Trait[];
9
+ rarity: Rarity;
9
10
  first_name: string;
10
11
  last_name: string;
11
12
  country_id: string;
@@ -13,14 +14,13 @@ export interface PlayerAttributes {
13
14
  MatchSetStats?: MatchSetStatsAttributes[];
14
15
  }
15
16
  export type PlayerPk = 'player_id';
16
- export type RoleType = 'SETTER' | 'LIBERO' | 'OUTSIDE_HITTER' | 'OPPOSITE_HITTER' | 'MIDDLE_BLOCKER';
17
- export type PlayerRarity = Rarity.COMMON | Rarity.RARE | Rarity.LEGENDARY | Rarity.MYTHIC | Rarity.SPECIAL;
18
17
  export type PlayerId = PlayerModel[PlayerPk];
19
18
  export type PlayerCreationAttributes = PlayerAttributes;
20
19
  export declare class PlayerModel extends Model<PlayerAttributes, PlayerCreationAttributes> implements PlayerAttributes {
21
20
  player_id: string;
22
- roles: RoleType[];
23
- rarity: PlayerRarity;
21
+ roles: Role[];
22
+ traits: Trait[];
23
+ rarity: Rarity;
24
24
  first_name: string;
25
25
  last_name: string;
26
26
  country_id: string;
@@ -80,17 +80,6 @@ export declare class PlayerModel extends Model<PlayerAttributes, PlayerCreationA
80
80
  hasPlayerTeam: Sequelize.HasManyHasAssociationMixin<PlayerTeamModel, PlayerTeamId>;
81
81
  hasPlayerTeams: Sequelize.HasManyHasAssociationsMixin<PlayerTeamModel, PlayerTeamId>;
82
82
  countPlayerTeams: Sequelize.HasManyCountAssociationsMixin;
83
- PlayerTraits: PlayerTraitModel[];
84
- getPlayerTraits: Sequelize.HasManyGetAssociationsMixin<PlayerTraitModel>;
85
- setPlayerTraits: Sequelize.HasManySetAssociationsMixin<PlayerTraitModel, PlayerTraitId>;
86
- addPlayerTrait: Sequelize.HasManyAddAssociationMixin<PlayerTraitModel, PlayerTraitId>;
87
- addPlayerTraits: Sequelize.HasManyAddAssociationsMixin<PlayerTraitModel, PlayerTraitId>;
88
- createPlayerTrait: Sequelize.HasManyCreateAssociationMixin<PlayerTraitModel>;
89
- removePlayerTrait: Sequelize.HasManyRemoveAssociationMixin<PlayerTraitModel, PlayerTraitId>;
90
- removePlayerTraits: Sequelize.HasManyRemoveAssociationsMixin<PlayerTraitModel, PlayerTraitId>;
91
- hasPlayerTrait: Sequelize.HasManyHasAssociationMixin<PlayerTraitModel, PlayerTraitId>;
92
- hasPlayerTraits: Sequelize.HasManyHasAssociationsMixin<PlayerTraitModel, PlayerTraitId>;
93
- countPlayerTraits: Sequelize.HasManyCountAssociationsMixin;
94
83
  SetPositions: SetPositionModel[];
95
84
  getSetPositions: Sequelize.HasManyGetAssociationsMixin<SetPositionModel>;
96
85
  setSetPositions: Sequelize.HasManySetAssociationsMixin<SetPositionModel, SetPositionId>;
@@ -113,16 +102,5 @@ export declare class PlayerModel extends Model<PlayerAttributes, PlayerCreationA
113
102
  hasTeam: Sequelize.BelongsToManyHasAssociationMixin<TeamModel, TeamId>;
114
103
  hasTeams: Sequelize.BelongsToManyHasAssociationsMixin<TeamModel, TeamId>;
115
104
  countTeams: Sequelize.BelongsToManyCountAssociationsMixin;
116
- Traits: TraitModel[];
117
- getTraits: Sequelize.BelongsToManyGetAssociationsMixin<TraitModel>;
118
- setTraits: Sequelize.BelongsToManySetAssociationsMixin<TraitModel, TraitId>;
119
- addTrait: Sequelize.BelongsToManyAddAssociationMixin<TraitModel, TraitId>;
120
- addTraits: Sequelize.BelongsToManyAddAssociationsMixin<TraitModel, TraitId>;
121
- createTrait: Sequelize.BelongsToManyCreateAssociationMixin<TraitModel>;
122
- removeTrait: Sequelize.BelongsToManyRemoveAssociationMixin<TraitModel, TraitId>;
123
- removeTraits: Sequelize.BelongsToManyRemoveAssociationsMixin<TraitModel, TraitId>;
124
- hasTrait: Sequelize.BelongsToManyHasAssociationMixin<TraitModel, TraitId>;
125
- hasTraits: Sequelize.BelongsToManyHasAssociationsMixin<TraitModel, TraitId>;
126
- countTraits: Sequelize.BelongsToManyCountAssociationsMixin;
127
105
  static initModel(sequelize: Sequelize.Sequelize): typeof PlayerModel;
128
106
  }
@@ -12,11 +12,15 @@ class PlayerModel extends sequelize_1.Model {
12
12
  primaryKey: true
13
13
  },
14
14
  roles: {
15
- type: sequelize_1.DataTypes.ARRAY(sequelize_1.DataTypes.ENUM('SETTER', 'LIBERO', 'OUTSIDE_HITTER', 'OPPOSITE_HITTER', 'MIDDLE_BLOCKER')),
15
+ type: sequelize_1.DataTypes.ARRAY(service_1.RoleDataType),
16
+ allowNull: false
17
+ },
18
+ traits: {
19
+ type: sequelize_1.DataTypes.ARRAY(service_1.TraitDataType),
16
20
  allowNull: false
17
21
  },
18
22
  rarity: {
19
- type: sequelize_1.DataTypes.ENUM(...Object.values(service_1.Rarity)),
23
+ type: sequelize_1.DataTypes.ENUM(service_1.RarityDataType),
20
24
  allowNull: false
21
25
  },
22
26
  first_name: {
@@ -16,10 +16,8 @@ export * from './performance-stats';
16
16
  export * from './player';
17
17
  export * from './rally';
18
18
  export * from './set-position';
19
- export * from './role';
20
19
  export * from './season';
21
20
  export * from './season-match';
22
21
  export * from './player-team';
23
22
  export * from './match-rating';
24
23
  export * from './team';
25
- export * from './trait';
@@ -32,10 +32,8 @@ __exportStar(require("./performance-stats"), exports);
32
32
  __exportStar(require("./player"), exports);
33
33
  __exportStar(require("./rally"), exports);
34
34
  __exportStar(require("./set-position"), exports);
35
- __exportStar(require("./role"), exports);
36
35
  __exportStar(require("./season"), exports);
37
36
  __exportStar(require("./season-match"), exports);
38
37
  __exportStar(require("./player-team"), exports);
39
38
  __exportStar(require("./match-rating"), exports);
40
39
  __exportStar(require("./team"), exports);
41
- __exportStar(require("./trait"), exports);
@@ -21,7 +21,8 @@ function transformToAttributes(player) {
21
21
  bump: player.stats.bump,
22
22
  setting: player.stats.setting,
23
23
  spike: player.stats.spike,
24
- stamina: player.stats.stamina
24
+ stamina: player.stats.stamina,
25
+ saving: player.stats.saving
25
26
  };
26
27
  }
27
28
  exports.transformFromPerformanceStats = transformToAttributes;
@@ -43,7 +44,8 @@ function transformToObject(model) {
43
44
  commit: model.commit,
44
45
  focus: model.focus,
45
46
  defense: model.defense,
46
- stamina: model.stamina
47
+ stamina: model.stamina,
48
+ saving: model.saving
47
49
  });
48
50
  }
49
51
  exports.transformToPerformanceStats = transformToObject;
@@ -9,7 +9,8 @@ function transformToAttributes(player) {
9
9
  country_id: player.country.id,
10
10
  first_name: player.name.first,
11
11
  last_name: player.name.last,
12
- roles: player.roles.map(_1.transformFromRole),
12
+ roles: player.roles,
13
+ traits: player.traits,
13
14
  PerformanceStat: (0, _1.transformFromPerformanceStats)(player),
14
15
  rarity: player.rarity
15
16
  };
@@ -23,8 +24,8 @@ function transformToObject(model) {
23
24
  last: model.last_name
24
25
  },
25
26
  country: (0, _1.transformToCountry)(model.country),
26
- roles: model.roles.map(_1.transformToRole),
27
- traits: model.Traits.map(_1.transformToTrait),
27
+ roles: model.roles,
28
+ traits: model.traits,
28
29
  stats: (0, _1.transformToPerformanceStats)(model.PerformanceStat),
29
30
  rarity: model.rarity
30
31
  });
@@ -1,3 +1,2 @@
1
1
  export * from './service';
2
2
  export * from './data';
3
- export * from './formula';
@@ -16,4 +16,3 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
17
  __exportStar(require("./service"), exports);
18
18
  __exportStar(require("./data"), exports);
19
- __exportStar(require("./formula"), exports);
@@ -19,29 +19,29 @@ exports.Formation = Formation;
19
19
  Formation['5-1'] = new Formation({
20
20
  name: '5-1',
21
21
  initialRotation: {
22
- 1: [player_1.Role.SETTER],
23
- 2: [player_1.Role.OUTSIDE_HITTER],
24
- 3: [player_1.Role.MIDDLE_BLOCKER],
25
- 4: [player_1.Role.OPPOSITE_HITTER],
26
- 5: [player_1.Role.OUTSIDE_HITTER],
27
- 6: [player_1.Role.MIDDLE_BLOCKER]
22
+ 1: [player_1.RoleEnum.SETTER],
23
+ 2: [player_1.RoleEnum.OUTSIDE_HITTER],
24
+ 3: [player_1.RoleEnum.MIDDLE_BLOCKER],
25
+ 4: [player_1.RoleEnum.OPPOSITE_HITTER],
26
+ 5: [player_1.RoleEnum.OUTSIDE_HITTER],
27
+ 6: [player_1.RoleEnum.MIDDLE_BLOCKER]
28
28
  },
29
29
  base: {
30
- 1: [player_1.Role.OPPOSITE_HITTER, player_1.Role.SETTER],
31
- 2: [player_1.Role.OPPOSITE_HITTER],
32
- 3: [player_1.Role.MIDDLE_BLOCKER],
33
- 4: [player_1.Role.OUTSIDE_HITTER],
34
- 5: [player_1.Role.OUTSIDE_HITTER],
35
- 6: [player_1.Role.LIBERO]
30
+ 1: [player_1.RoleEnum.OPPOSITE_HITTER, player_1.RoleEnum.SETTER],
31
+ 2: [player_1.RoleEnum.OPPOSITE_HITTER],
32
+ 3: [player_1.RoleEnum.MIDDLE_BLOCKER],
33
+ 4: [player_1.RoleEnum.OUTSIDE_HITTER],
34
+ 5: [player_1.RoleEnum.OUTSIDE_HITTER],
35
+ 6: [player_1.RoleEnum.LIBERO]
36
36
  },
37
37
  draftingPriorities: [
38
- [player_1.Role.SETTER, player_1.Role.OPPOSITE_HITTER],
39
- [player_1.Role.OPPOSITE_HITTER],
40
- [player_1.Role.MIDDLE_BLOCKER],
41
- [player_1.Role.MIDDLE_BLOCKER],
42
- [player_1.Role.OUTSIDE_HITTER],
43
- [player_1.Role.OUTSIDE_HITTER],
44
- [player_1.Role.LIBERO]
38
+ [player_1.RoleEnum.SETTER, player_1.RoleEnum.OPPOSITE_HITTER],
39
+ [player_1.RoleEnum.OPPOSITE_HITTER],
40
+ [player_1.RoleEnum.MIDDLE_BLOCKER],
41
+ [player_1.RoleEnum.MIDDLE_BLOCKER],
42
+ [player_1.RoleEnum.OUTSIDE_HITTER],
43
+ [player_1.RoleEnum.OUTSIDE_HITTER],
44
+ [player_1.RoleEnum.LIBERO]
45
45
  ],
46
46
  liberoSubPriority: {
47
47
  MIDDLE_BLOCKER: 1,
@@ -54,29 +54,29 @@ Formation['5-1'] = new Formation({
54
54
  Formation['4-2'] = new Formation({
55
55
  name: '4-2',
56
56
  initialRotation: {
57
- 1: [player_1.Role.MIDDLE_BLOCKER],
58
- 2: [player_1.Role.SETTER],
59
- 3: [player_1.Role.OUTSIDE_HITTER],
60
- 4: [player_1.Role.MIDDLE_BLOCKER],
61
- 5: [player_1.Role.SETTER],
62
- 6: [player_1.Role.OPPOSITE_HITTER]
57
+ 1: [player_1.RoleEnum.MIDDLE_BLOCKER],
58
+ 2: [player_1.RoleEnum.SETTER],
59
+ 3: [player_1.RoleEnum.OUTSIDE_HITTER],
60
+ 4: [player_1.RoleEnum.MIDDLE_BLOCKER],
61
+ 5: [player_1.RoleEnum.SETTER],
62
+ 6: [player_1.RoleEnum.OPPOSITE_HITTER]
63
63
  },
64
64
  base: {
65
- 1: [player_1.Role.SETTER],
66
- 2: [player_1.Role.OPPOSITE_HITTER, player_1.Role.SETTER],
67
- 3: [player_1.Role.MIDDLE_BLOCKER],
68
- 4: [player_1.Role.OUTSIDE_HITTER],
69
- 5: [player_1.Role.OUTSIDE_HITTER],
70
- 6: [player_1.Role.LIBERO]
65
+ 1: [player_1.RoleEnum.SETTER],
66
+ 2: [player_1.RoleEnum.OPPOSITE_HITTER, player_1.RoleEnum.SETTER],
67
+ 3: [player_1.RoleEnum.MIDDLE_BLOCKER],
68
+ 4: [player_1.RoleEnum.OUTSIDE_HITTER],
69
+ 5: [player_1.RoleEnum.OUTSIDE_HITTER],
70
+ 6: [player_1.RoleEnum.LIBERO]
71
71
  },
72
72
  draftingPriorities: [
73
- [player_1.Role.SETTER, player_1.Role.OPPOSITE_HITTER],
74
- [player_1.Role.SETTER],
75
- [player_1.Role.MIDDLE_BLOCKER],
76
- [player_1.Role.MIDDLE_BLOCKER],
77
- [player_1.Role.OUTSIDE_HITTER],
78
- [player_1.Role.OUTSIDE_HITTER],
79
- [player_1.Role.LIBERO]
73
+ [player_1.RoleEnum.SETTER, player_1.RoleEnum.OPPOSITE_HITTER],
74
+ [player_1.RoleEnum.SETTER],
75
+ [player_1.RoleEnum.MIDDLE_BLOCKER],
76
+ [player_1.RoleEnum.MIDDLE_BLOCKER],
77
+ [player_1.RoleEnum.OUTSIDE_HITTER],
78
+ [player_1.RoleEnum.OUTSIDE_HITTER],
79
+ [player_1.RoleEnum.LIBERO]
80
80
  ],
81
81
  liberoSubPriority: {
82
82
  MIDDLE_BLOCKER: 1,
@@ -89,29 +89,29 @@ Formation['4-2'] = new Formation({
89
89
  Formation['6-2'] = new Formation({
90
90
  name: '6-2',
91
91
  initialRotation: {
92
- 1: [player_1.Role.OPPOSITE_HITTER, player_1.Role.SETTER],
93
- 2: [player_1.Role.OUTSIDE_HITTER],
94
- 3: [player_1.Role.MIDDLE_BLOCKER],
95
- 4: [player_1.Role.OPPOSITE_HITTER, player_1.Role.SETTER],
96
- 5: [player_1.Role.OUTSIDE_HITTER],
97
- 6: [player_1.Role.MIDDLE_BLOCKER]
92
+ 1: [player_1.RoleEnum.OPPOSITE_HITTER, player_1.RoleEnum.SETTER],
93
+ 2: [player_1.RoleEnum.OUTSIDE_HITTER],
94
+ 3: [player_1.RoleEnum.MIDDLE_BLOCKER],
95
+ 4: [player_1.RoleEnum.OPPOSITE_HITTER, player_1.RoleEnum.SETTER],
96
+ 5: [player_1.RoleEnum.OUTSIDE_HITTER],
97
+ 6: [player_1.RoleEnum.MIDDLE_BLOCKER]
98
98
  },
99
99
  base: {
100
- 1: [player_1.Role.SETTER],
101
- 2: [player_1.Role.OPPOSITE_HITTER, player_1.Role.SETTER],
102
- 3: [player_1.Role.MIDDLE_BLOCKER],
103
- 4: [player_1.Role.OUTSIDE_HITTER],
104
- 5: [player_1.Role.OUTSIDE_HITTER],
105
- 6: [player_1.Role.LIBERO]
100
+ 1: [player_1.RoleEnum.SETTER],
101
+ 2: [player_1.RoleEnum.OPPOSITE_HITTER, player_1.RoleEnum.SETTER],
102
+ 3: [player_1.RoleEnum.MIDDLE_BLOCKER],
103
+ 4: [player_1.RoleEnum.OUTSIDE_HITTER],
104
+ 5: [player_1.RoleEnum.OUTSIDE_HITTER],
105
+ 6: [player_1.RoleEnum.LIBERO]
106
106
  },
107
107
  draftingPriorities: [
108
- [player_1.Role.SETTER, player_1.Role.OPPOSITE_HITTER],
109
- [player_1.Role.OPPOSITE_HITTER, player_1.Role.SETTER],
110
- [player_1.Role.MIDDLE_BLOCKER],
111
- [player_1.Role.MIDDLE_BLOCKER],
112
- [player_1.Role.OUTSIDE_HITTER],
113
- [player_1.Role.OUTSIDE_HITTER],
114
- [player_1.Role.LIBERO]
108
+ [player_1.RoleEnum.SETTER, player_1.RoleEnum.OPPOSITE_HITTER],
109
+ [player_1.RoleEnum.OPPOSITE_HITTER, player_1.RoleEnum.SETTER],
110
+ [player_1.RoleEnum.MIDDLE_BLOCKER],
111
+ [player_1.RoleEnum.MIDDLE_BLOCKER],
112
+ [player_1.RoleEnum.OUTSIDE_HITTER],
113
+ [player_1.RoleEnum.OUTSIDE_HITTER],
114
+ [player_1.RoleEnum.LIBERO]
115
115
  ],
116
116
  liberoSubPriority: {
117
117
  MIDDLE_BLOCKER: 1,
@@ -1,5 +1,6 @@
1
1
  export * from './player';
2
2
  export * from './performance-stats';
3
- export * from './role';
4
3
  export * from './trait';
5
4
  export * from './rarity';
5
+ export * from './role';
6
+ export * from './stats';
@@ -16,6 +16,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
17
  __exportStar(require("./player"), exports);
18
18
  __exportStar(require("./performance-stats"), exports);
19
- __exportStar(require("./role"), exports);
20
19
  __exportStar(require("./trait"), exports);
21
20
  __exportStar(require("./rarity"), exports);
21
+ __exportStar(require("./role"), exports);
22
+ __exportStar(require("./stats"), exports);
@@ -1,4 +1,4 @@
1
- export declare const performanceStatKeys: readonly ["setting", "serve", "spike", "quick", "power", "awareness", "attack", "backAttack", "reception", "overhand", "bump", "block", "read", "commit", "focus", "defense", "stamina"];
1
+ export declare const performanceStatKeys: readonly ["setting", "serve", "spike", "quick", "power", "awareness", "attack", "backAttack", "reception", "overhand", "bump", "block", "read", "commit", "focus", "defense", "stamina", "saving"];
2
2
  export type PerformanceStatsKey = typeof performanceStatKeys[number];
3
3
  export type PerformanceStatsParams = Record<PerformanceStatsKey, number>;
4
4
  export interface PerformanceStats extends PerformanceStatsParams {
@@ -2,7 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.PerformanceStats = exports.performanceStatKeys = void 0;
4
4
  exports.performanceStatKeys = ['setting', 'serve', 'spike', 'quick', 'power', 'awareness', 'attack', 'backAttack',
5
- 'reception', 'overhand', 'bump', 'block', 'read', 'commit', 'focus', 'defense', 'stamina'];
5
+ 'reception', 'overhand', 'bump', 'block', 'read', 'commit', 'focus', 'defense', 'stamina', 'saving'];
6
6
  class PerformanceStats {
7
7
  constructor(opts) {
8
8
  Object.assign(this, opts);
@@ -1,14 +1,14 @@
1
1
  import { PerformanceStats } from './performance-stats';
2
- import { Role } from './role';
3
2
  import { Trait } from './trait';
4
3
  import { Country } from '../country';
5
- import * as GeneralStat from '../../formula/stats';
6
4
  import { Rarity } from './rarity';
5
+ import { Stats } from './stats';
6
+ import { Role } from './role';
7
7
  export declare class Stat {
8
- readonly name: GeneralStat.Stats;
8
+ readonly name: Stats;
9
9
  readonly value: number;
10
10
  constructor({ name, value }: {
11
- name: GeneralStat.Stats;
11
+ name: Stats;
12
12
  value: number;
13
13
  });
14
14
  toString(): string;
@@ -43,7 +43,6 @@ export declare class Player {
43
43
  constructor({ id, name, country, stats, roles, traits, rarity }: PlayerParams);
44
44
  static sortPlayers(roles: Role[]): (p1: Player, p2: Player) => number;
45
45
  static compareStats(p1: Player, p2: Player): number;
46
- canPlayLibero(): boolean;
47
46
  toString(): string;
48
47
  }
49
48
  export {};
@@ -1,32 +1,9 @@
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;
24
- };
25
2
  Object.defineProperty(exports, "__esModule", { value: true });
26
3
  exports.Player = exports.Name = exports.Stat = void 0;
27
- const role_1 = require("./role");
28
4
  const utils_1 = require("../utils");
29
- const GeneralStat = __importStar(require("../../formula/stats"));
5
+ const stats_1 = require("./stats");
6
+ const role_1 = require("./role");
30
7
  class Stat {
31
8
  constructor({ name, value }) {
32
9
  this.name = name;
@@ -57,16 +34,16 @@ class Player {
57
34
  this.roles = roles;
58
35
  this.traits = traits;
59
36
  this.rarity = rarity;
60
- this.generalStats = GeneralStat.ALL_STATS.map(stat => ({
37
+ this.generalStats = Object.values(stats_1.StatsEnum).map((stat) => ({
61
38
  name: stat,
62
- value: GeneralStat.calculateScore(stats, stat)
39
+ value: (0, stats_1.calculateStatScore)(stats, stat)
63
40
  }));
64
41
  }
65
42
  // Used as a base sorting function for players
66
43
  static sortPlayers(roles) {
67
44
  return (p1, p2) => roles.reduce((x, role) => {
68
- const p2Score = role_1.Role.calculateScore(p2.stats, role);
69
- const p1Score = role_1.Role.calculateScore(p1.stats, role);
45
+ const p2Score = (0, role_1.calculateRoleScore)(p2.stats, role);
46
+ const p1Score = (0, role_1.calculateRoleScore)(p1.stats, role);
70
47
  return x + p2Score - p1Score;
71
48
  }, 0);
72
49
  }
@@ -74,17 +51,23 @@ class Player {
74
51
  const compareFn = (acc, current) => {
75
52
  let x = current.value;
76
53
  switch (current.name) {
77
- case 'ATTACK':
78
- x *= 0.35;
54
+ case stats_1.StatsEnum.ATTACK:
55
+ x *= 0.19;
79
56
  break;
80
- case 'DEFENSE':
81
- x *= 0.35;
57
+ case stats_1.StatsEnum.SET:
58
+ x *= 0.19;
82
59
  break;
83
- case 'SERVE':
84
- x *= 0.2;
60
+ case stats_1.StatsEnum.RECEIVE:
61
+ x *= 0.19;
85
62
  break;
86
- case 'PHYSICAL':
87
- x *= 0.1;
63
+ case stats_1.StatsEnum.BLOCK:
64
+ x *= 0.19;
65
+ break;
66
+ case stats_1.StatsEnum.SERVE:
67
+ x *= 0.19;
68
+ break;
69
+ case stats_1.StatsEnum.STAMINA:
70
+ x *= 0.05;
88
71
  break;
89
72
  default:
90
73
  x *= 0;
@@ -95,9 +78,6 @@ class Player {
95
78
  const s2 = p2.generalStats.reduce(compareFn, 0);
96
79
  return s2 - s1;
97
80
  }
98
- canPlayLibero() {
99
- return this.roles.includes(role_1.Role.LIBERO);
100
- }
101
81
  toString() {
102
82
  return JSON.stringify({
103
83
  id: this.id,
@@ -106,7 +86,7 @@ class Player {
106
86
  stats: this.stats.toString(),
107
87
  rarity: this.rarity,
108
88
  roles: `[${this.roles.map(r => r.toString()).join(',')}]`,
109
- traits: `[${this.traits.map(r => r.toString()).join(',')}]`,
89
+ traits: `[${this.traits.map(t => t.toString()).join(',')}]`,
110
90
  generalStats: `[${this.generalStats.map(r => r.toString()).join(',')}]`
111
91
  });
112
92
  }
@@ -1,10 +1,12 @@
1
- export declare enum Rarity {
1
+ import { EnumDataType } from 'sequelize';
2
+ export declare enum RarityEnum {
2
3
  COMMON = "COMMON",
3
4
  RARE = "RARE",
4
5
  LEGENDARY = "LEGENDARY",
5
6
  MYTHIC = "MYTHIC",
6
7
  SPECIAL = "SPECIAL"
7
8
  }
9
+ export type Rarity = RarityEnum.COMMON | RarityEnum.RARE | RarityEnum.LEGENDARY | RarityEnum.MYTHIC | RarityEnum.SPECIAL;
8
10
  export declare const RarityRanges: {
9
11
  COMMON: number[];
10
12
  RARE: number[];
@@ -12,3 +14,4 @@ export declare const RarityRanges: {
12
14
  MYTHIC: number[];
13
15
  SPECIAL: number[];
14
16
  };
17
+ export declare const RarityDataType: EnumDataType<RarityEnum>;