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,38 +0,0 @@
1
- import { DataTypes, Model } from 'sequelize';
2
- export class PlayerTraitModel extends Model {
3
- static initModel(sequelize) {
4
- return PlayerTraitModel.init({
5
- player_id: {
6
- type: DataTypes.UUID,
7
- allowNull: false,
8
- primaryKey: true,
9
- references: {
10
- model: 'Player',
11
- key: 'player_id'
12
- }
13
- },
14
- trait_id: {
15
- type: DataTypes.UUID,
16
- allowNull: false,
17
- primaryKey: true,
18
- references: {
19
- model: 'Trait',
20
- key: 'trait_id'
21
- }
22
- }
23
- }, {
24
- sequelize,
25
- tableName: 'PlayerTrait',
26
- schema: 'public',
27
- timestamps: false,
28
- indexes: [{
29
- name: 'playertrait_pk',
30
- unique: true,
31
- fields: [
32
- { name: 'trait_id' },
33
- { name: 'player_id' }
34
- ]
35
- }]
36
- });
37
- }
38
- }
@@ -1,37 +0,0 @@
1
- import * as Sequelize from 'sequelize';
2
- import { Model } from 'sequelize';
3
- import { PlayerId, PlayerModel, PlayerTraitId, PlayerTraitModel } from '.';
4
- export interface TraitAttributes {
5
- trait_id: string;
6
- name: string;
7
- }
8
- export type TraitPk = 'trait_id';
9
- export type TraitId = TraitModel[TraitPk];
10
- export type TraitCreationAttributes = TraitAttributes;
11
- export declare class TraitModel extends Model<TraitAttributes, TraitCreationAttributes> implements TraitAttributes {
12
- trait_id: string;
13
- name: string;
14
- Players: PlayerModel[];
15
- getPlayers: Sequelize.BelongsToManyGetAssociationsMixin<PlayerModel>;
16
- setPlayers: Sequelize.BelongsToManySetAssociationsMixin<PlayerModel, PlayerId>;
17
- addPlayer: Sequelize.BelongsToManyAddAssociationMixin<PlayerModel, PlayerId>;
18
- addPlayers: Sequelize.BelongsToManyAddAssociationsMixin<PlayerModel, PlayerId>;
19
- createPlayer: Sequelize.BelongsToManyCreateAssociationMixin<PlayerModel>;
20
- removePlayer: Sequelize.BelongsToManyRemoveAssociationMixin<PlayerModel, PlayerId>;
21
- removePlayers: Sequelize.BelongsToManyRemoveAssociationsMixin<PlayerModel, PlayerId>;
22
- hasPlayer: Sequelize.BelongsToManyHasAssociationMixin<PlayerModel, PlayerId>;
23
- hasPlayers: Sequelize.BelongsToManyHasAssociationsMixin<PlayerModel, PlayerId>;
24
- countPlayers: Sequelize.BelongsToManyCountAssociationsMixin;
25
- PlayerTraits: PlayerTraitModel[];
26
- getPlayerTraits: Sequelize.HasManyGetAssociationsMixin<PlayerTraitModel>;
27
- setPlayerTraits: Sequelize.HasManySetAssociationsMixin<PlayerTraitModel, PlayerTraitId>;
28
- addPlayerTrait: Sequelize.HasManyAddAssociationMixin<PlayerTraitModel, PlayerTraitId>;
29
- addPlayerTraits: Sequelize.HasManyAddAssociationsMixin<PlayerTraitModel, PlayerTraitId>;
30
- createPlayerTrait: Sequelize.HasManyCreateAssociationMixin<PlayerTraitModel>;
31
- removePlayerTrait: Sequelize.HasManyRemoveAssociationMixin<PlayerTraitModel, PlayerTraitId>;
32
- removePlayerTraits: Sequelize.HasManyRemoveAssociationsMixin<PlayerTraitModel, PlayerTraitId>;
33
- hasPlayerTrait: Sequelize.HasManyHasAssociationMixin<PlayerTraitModel, PlayerTraitId>;
34
- hasPlayerTraits: Sequelize.HasManyHasAssociationsMixin<PlayerTraitModel, PlayerTraitId>;
35
- countPlayerTraits: Sequelize.HasManyCountAssociationsMixin;
36
- static initModel(sequelize: Sequelize.Sequelize): typeof TraitModel;
37
- }
@@ -1,26 +0,0 @@
1
- import { DataTypes, Model } from 'sequelize';
2
- export class TraitModel extends Model {
3
- static initModel(sequelize) {
4
- return TraitModel.init({
5
- trait_id: {
6
- type: DataTypes.UUID,
7
- allowNull: false,
8
- primaryKey: true
9
- },
10
- name: {
11
- type: DataTypes.STRING,
12
- allowNull: false
13
- }
14
- }, {
15
- sequelize,
16
- tableName: 'Trait',
17
- schema: 'public',
18
- timestamps: false,
19
- indexes: [{
20
- name: 'trait_pk',
21
- unique: true,
22
- fields: [{ name: 'trait_id' }]
23
- }]
24
- });
25
- }
26
- }
@@ -1,5 +0,0 @@
1
- import { Role } from '../../service';
2
- import { RoleType } from '../models';
3
- declare function transformToType(role: Role): RoleType;
4
- declare function transformFromType(role: RoleType): Role;
5
- export { transformToType as transformFromRole, transformFromType as transformToRole };
@@ -1,21 +0,0 @@
1
- import { Role } from '../../service';
2
- function transformToType(role) {
3
- switch (role) {
4
- case Role.SETTER:
5
- return 'SETTER';
6
- case Role.LIBERO:
7
- return 'LIBERO';
8
- case Role.MIDDLE_BLOCKER:
9
- return 'MIDDLE_BLOCKER';
10
- case Role.OUTSIDE_HITTER:
11
- return 'OUTSIDE_HITTER';
12
- case Role.OPPOSITE_HITTER:
13
- return 'OPPOSITE_HITTER';
14
- default:
15
- throw new Error('UNKNOWN_ROLE');
16
- }
17
- }
18
- function transformFromType(role) {
19
- return Role[role];
20
- }
21
- export { transformToType as transformFromRole, transformFromType as transformToRole };
@@ -1,5 +0,0 @@
1
- import { Trait } from '../../service';
2
- import { TraitAttributes, TraitModel } from '../models';
3
- declare function transformToAttributes(trait: Trait): TraitAttributes;
4
- declare function transformToObject(model: TraitModel): Trait;
5
- export { transformToObject as transformToTrait, transformToAttributes as transformFromTrait };
@@ -1,15 +0,0 @@
1
- import { Trait } from '../../service';
2
- function transformToAttributes(trait) {
3
- return {
4
- trait_id: trait.id,
5
- name: trait.name
6
- };
7
- }
8
- function transformToObject(model) {
9
- const trait = Trait.getTraits().find((trait) => trait.id === model.trait_id);
10
- if (trait == null) {
11
- throw new Error('TRAIT_NOT_FOUND');
12
- }
13
- return trait;
14
- }
15
- export { transformToObject as transformToTrait, transformToAttributes as transformFromTrait };
@@ -1,125 +0,0 @@
1
- {
2
- "SERVE": {
3
- "UNDERHAND": {
4
- "serve": 1,
5
- "penalty": 0.6
6
- },
7
- "OVERHAND_TOPSPIN": {
8
- "serve": 1,
9
- "penalty": 0.35
10
- },
11
- "OVERHAND_FLOAT": {
12
- "serve": 1,
13
- "penalty": 0.2
14
- },
15
- "JUMP_TOPSPIN": {
16
- "serve": 0.9,
17
- "jump": 0.1,
18
- "penalty": 0.05
19
- },
20
- "JUMP_FLOAT": {
21
- "serve": 0.9,
22
- "jump": 0.1
23
- }
24
- },
25
- "RECEPTION": {
26
- "DIG": {
27
- "defense": 0.2,
28
- "reception": 0.7,
29
- "pass": 0.1
30
- },
31
- "OVERHAND": {
32
- "defense": 0.4,
33
- "reception": 0.3,
34
- "pass": 0.3,
35
- "penalty": 0.2
36
- },
37
- "ONE_HAND": {
38
- "defense": 0.5,
39
- "reception": 0.4,
40
- "pass": 0.1,
41
- "penalty": 0.35
42
- },
43
- "OTHER_BODY_PART": {
44
- "defense": 0.8,
45
- "reception": 0.2,
46
- "penalty": 0.7
47
- }
48
- },
49
- "SET": {
50
- "OVERHAND": {
51
- "setting": 0.75,
52
- "pass": 0.15,
53
- "awareness": 0.1
54
- },
55
- "UNDERHAND": {
56
- "setting": 0.55,
57
- "pass": 0.15,
58
- "reception": 0.3,
59
- "penalty": 0.1
60
- },
61
- "SPIKE": {
62
- "spike": 0.8,
63
- "jump": 0.15,
64
- "awareness": 0.05
65
- },
66
- "DUMP": {
67
- "spike": 0.4,
68
- "jump": 0.1,
69
- "awareness": 0.5
70
- }
71
- },
72
- "SPIKE": {
73
- "CROSS_SHOT": {
74
- "spike": 0.8,
75
- "jump": 0.2
76
- },
77
- "LINE_SHOT": {
78
- "spike": 0.65,
79
- "jump": 0.3,
80
- "awareness": 0.05
81
- },
82
- "TOOL_SHOT": {
83
- "spike": 0.6,
84
- "jump": 0.1,
85
- "awareness": 0.3
86
- },
87
- "TIP": {
88
- "spike": 0.2,
89
- "jump": 0.3,
90
- "awareness": 0.5
91
- },
92
- "DOWN_BALL": {
93
- "spike": 0.8,
94
- "serve": 0.2,
95
- "penalty": 0.5
96
- },
97
- "OVERHAND": {
98
- "serve": 0.2,
99
- "pass": 0.5,
100
- "awareness": 0.3,
101
- "penalty": 0.7
102
- }
103
- },
104
- "BLOCK": {
105
- "NO_BLOCKER": {
106
- "block": 1,
107
- "penalty": 1
108
- },
109
- "SINGLE": {
110
- "jump": 0.4,
111
- "block": 0.4,
112
- "defense": 0.2
113
- },
114
- "DOUBLE": {
115
- "jump": 0.4,
116
- "block": 0.4,
117
- "defense": 0.2
118
- },
119
- "TRIPLE": {
120
- "jump": 0.4,
121
- "block": 0.4,
122
- "defense": 0.2
123
- }
124
- }
125
- }
@@ -1,125 +0,0 @@
1
- export declare const eventsFormula: {
2
- SERVE: {
3
- UNDERHAND: {
4
- serve: number;
5
- penalty: number;
6
- };
7
- OVERHAND_TOPSPIN: {
8
- serve: number;
9
- penalty: number;
10
- };
11
- OVERHAND_FLOAT: {
12
- serve: number;
13
- penalty: number;
14
- };
15
- JUMP_TOPSPIN: {
16
- serve: number;
17
- jump: number;
18
- penalty: number;
19
- };
20
- JUMP_FLOAT: {
21
- serve: number;
22
- jump: number;
23
- };
24
- };
25
- RECEPTION: {
26
- DIG: {
27
- defense: number;
28
- reception: number;
29
- pass: number;
30
- };
31
- OVERHAND: {
32
- defense: number;
33
- reception: number;
34
- pass: number;
35
- penalty: number;
36
- };
37
- ONE_HAND: {
38
- defense: number;
39
- reception: number;
40
- pass: number;
41
- penalty: number;
42
- };
43
- OTHER_BODY_PART: {
44
- defense: number;
45
- reception: number;
46
- penalty: number;
47
- };
48
- };
49
- SET: {
50
- OVERHAND: {
51
- setting: number;
52
- pass: number;
53
- awareness: number;
54
- };
55
- UNDERHAND: {
56
- setting: number;
57
- pass: number;
58
- reception: number;
59
- penalty: number;
60
- };
61
- SPIKE: {
62
- spike: number;
63
- jump: number;
64
- awareness: number;
65
- };
66
- DUMP: {
67
- spike: number;
68
- jump: number;
69
- awareness: number;
70
- };
71
- };
72
- SPIKE: {
73
- CROSS_SHOT: {
74
- spike: number;
75
- jump: number;
76
- };
77
- LINE_SHOT: {
78
- spike: number;
79
- jump: number;
80
- awareness: number;
81
- };
82
- TOOL_SHOT: {
83
- spike: number;
84
- jump: number;
85
- awareness: number;
86
- };
87
- TIP: {
88
- spike: number;
89
- jump: number;
90
- awareness: number;
91
- };
92
- DOWN_BALL: {
93
- spike: number;
94
- serve: number;
95
- penalty: number;
96
- };
97
- OVERHAND: {
98
- serve: number;
99
- pass: number;
100
- awareness: number;
101
- penalty: number;
102
- };
103
- };
104
- BLOCK: {
105
- NO_BLOCKER: {
106
- block: number;
107
- penalty: number;
108
- };
109
- SINGLE: {
110
- jump: number;
111
- block: number;
112
- defense: number;
113
- };
114
- DOUBLE: {
115
- jump: number;
116
- block: number;
117
- defense: number;
118
- };
119
- TRIPLE: {
120
- jump: number;
121
- block: number;
122
- defense: number;
123
- };
124
- };
125
- };
@@ -1,2 +0,0 @@
1
- import events from './event.formula.json';
2
- export const eventsFormula = events;
@@ -1,3 +0,0 @@
1
- export * from './stats';
2
- export * from './events';
3
- export * from './roles';
@@ -1,3 +0,0 @@
1
- export * from './stats';
2
- export * from './events';
3
- export * from './roles';
@@ -1,82 +0,0 @@
1
- [
2
- {
3
- "role": "SETTER",
4
- "weight": {
5
- "serve": 0.2,
6
- "setting": 0.2475,
7
- "pass": 0.09,
8
- "reception": 0.0825,
9
- "spike": 0.075,
10
- "backAttack": 0,
11
- "jump": 0.1125,
12
- "block": 0,
13
- "awareness": 0.1425,
14
- "defense": 0,
15
- "stamina": 0.05
16
- }
17
- },
18
- {
19
- "role": "LIBERO",
20
- "weight": {
21
- "serve": 0.02,
22
- "setting": 0.045,
23
- "pass": 0.095,
24
- "reception": 0.33,
25
- "spike": 0,
26
- "backAttack": 0,
27
- "jump": 0,
28
- "block": 0,
29
- "awareness": 0.14,
30
- "defense": 0.33,
31
- "stamina": 0.04
32
- }
33
- },
34
- {
35
- "role": "OUTSIDE_HITTER",
36
- "weight": {
37
- "serve": 0.2,
38
- "setting": 0,
39
- "pass": 0,
40
- "reception": 0.075,
41
- "spike": 0.2325,
42
- "backAttack": 0.105,
43
- "jump": 0.15,
44
- "block": 0.1125,
45
- "awareness": 0.0375,
46
- "defense": 0.0375,
47
- "stamina": 0.05
48
- }
49
- },
50
- {
51
- "role": "OPPOSITE_HITTER",
52
- "weight": {
53
- "serve": 0.2,
54
- "setting": 0,
55
- "pass": 0,
56
- "reception": 0.05,
57
- "spike": 0.245,
58
- "backAttack": 0.12,
59
- "jump": 0.155,
60
- "block": 0.1050,
61
- "awareness": 0.04,
62
- "defense": 0.035,
63
- "stamina": 0.05
64
- }
65
- },
66
- {
67
- "role": "MIDDLE_BLOCKER",
68
- "weight": {
69
- "serve": 0.2,
70
- "setting": 0,
71
- "pass": 0,
72
- "reception": 0,
73
- "spike": 0.09,
74
- "backAttack": 0,
75
- "jump": 0.24,
76
- "block": 0.2475,
77
- "awareness": 0.0975,
78
- "defense": 0.075,
79
- "stamina": 0.05
80
- }
81
- }
82
- ]
@@ -1,20 +0,0 @@
1
- export declare const ALL_ROLES: string[];
2
- export type RolesTuple = typeof ALL_ROLES;
3
- export type Roles = RolesTuple[number];
4
- export interface RolesFormula {
5
- 'role': Roles;
6
- 'weight': {
7
- 'serve': number;
8
- 'setting': number;
9
- 'pass': number;
10
- 'reception': number;
11
- 'spike': number;
12
- 'backAttack': number;
13
- 'jump': number;
14
- 'block': number;
15
- 'awareness': number;
16
- 'defense': number;
17
- 'stamina': number;
18
- };
19
- }
20
- export declare const rolesFormula: RolesFormula[];
@@ -1,3 +0,0 @@
1
- import roles from './role.formula.json';
2
- export const ALL_ROLES = ['SETTER', 'LIBERO', 'OUTSIDE_HITTER', 'OPPOSITE_HITTER', 'MIDDLE_BLOCKER'];
3
- export const rolesFormula = roles;
@@ -1,66 +0,0 @@
1
- [
2
- {
3
- "statName": "ATTACK",
4
- "weight": {
5
- "serve": 0,
6
- "setting": 0.2,
7
- "pass": 0.08,
8
- "reception": 0,
9
- "spike": 0.3,
10
- "backAttack": 0.1,
11
- "jump": 0.17,
12
- "block": 0.08,
13
- "awareness": 0.07,
14
- "defense": 0,
15
- "stamina": 0
16
- }
17
- },
18
- {
19
- "statName": "DEFENSE",
20
- "weight": {
21
- "serve": 0,
22
- "setting": 0.02,
23
- "pass": 0.05,
24
- "reception": 0.23,
25
- "spike": 0,
26
- "backAttack": 0,
27
- "jump": 0.18,
28
- "block": 0.19,
29
- "awareness": 0.1,
30
- "defense": 0.23,
31
- "stamina": 0
32
- }
33
- },
34
- {
35
- "statName": "PHYSICAL",
36
- "weight": {
37
- "serve": 0,
38
- "setting": 0,
39
- "pass": 0,
40
- "reception": 0,
41
- "spike": 0,
42
- "backAttack": 0,
43
- "jump": 0.35,
44
- "block": 0,
45
- "awareness": 0.1,
46
- "defense": 0,
47
- "stamina": 0.55
48
- }
49
- },
50
- {
51
- "statName": "SERVE",
52
- "weight": {
53
- "serve": 0.9,
54
- "setting": 0,
55
- "pass": 0,
56
- "reception": 0,
57
- "spike": 0,
58
- "backAttack": 0,
59
- "jump": 0.1,
60
- "block": 0,
61
- "awareness": 0,
62
- "defense": 0,
63
- "stamina": 0
64
- }
65
- }
66
- ]
@@ -1,10 +0,0 @@
1
- import { PerformanceStats, PerformanceStatsParams } from '../service';
2
- export declare const ALL_STATS: string[];
3
- export type StatsTuple = typeof ALL_STATS;
4
- export type Stats = StatsTuple[number];
5
- export interface StatFormula {
6
- statName: Stats;
7
- weight: PerformanceStatsParams;
8
- }
9
- export declare const statsFormula: StatFormula[];
10
- export declare function calculateScore(performanceStats: PerformanceStats, statName: Stats): number;
@@ -1,11 +0,0 @@
1
- import stats from './stat.formula.json';
2
- export const ALL_STATS = ['ATTACK', 'DEFENSE', 'SERVE', 'PHYSICAL'];
3
- export const statsFormula = stats;
4
- export function calculateScore(performanceStats, statName) {
5
- const weights = stats.find((s) => s.statName === statName);
6
- if (weights == null)
7
- throw new Error('COULD_NOT_FIND_ROLE_WEIGHT');
8
- const score = Object.entries(weights.weight)
9
- .reduce((total, [key, value]) => total + value * performanceStats[key], 0);
10
- return Math.round(score);
11
- }