volleyballsimtypes 0.0.501 → 0.0.503

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 (81) hide show
  1. package/dist/cjs/src/data/models/box-score.d.ts +12 -0
  2. package/dist/cjs/src/data/models/box-score.js +30 -0
  3. package/dist/cjs/src/data/models/views/box-score-totals.d.ts +12 -0
  4. package/dist/cjs/src/data/models/views/box-score-totals.js +24 -0
  5. package/dist/cjs/src/data/transformers/box-score.js +13 -1
  6. package/dist/cjs/src/data/transformers/player.js +7 -1
  7. package/dist/cjs/src/data/transformers/rally-event-positional.test.d.ts +1 -0
  8. package/dist/cjs/src/data/transformers/rally-event-positional.test.js +56 -0
  9. package/dist/cjs/src/data/transformers/rally-event.d.ts +4 -0
  10. package/dist/cjs/src/data/transformers/rally-event.js +34 -6
  11. package/dist/cjs/src/service/event/block.js +2 -2
  12. package/dist/cjs/src/service/event/free-ball.js +2 -2
  13. package/dist/cjs/src/service/event/in-play-event.d.ts +19 -1
  14. package/dist/cjs/src/service/event/in-play-event.js +17 -2
  15. package/dist/cjs/src/service/event/reception.js +2 -2
  16. package/dist/cjs/src/service/event/schemas/block.z.d.ts +10 -0
  17. package/dist/cjs/src/service/event/schemas/block.z.js +3 -1
  18. package/dist/cjs/src/service/event/schemas/free-ball.z.d.ts +10 -0
  19. package/dist/cjs/src/service/event/schemas/free-ball.z.js +3 -1
  20. package/dist/cjs/src/service/event/schemas/positional.z.d.ts +17 -0
  21. package/dist/cjs/src/service/event/schemas/positional.z.js +18 -0
  22. package/dist/cjs/src/service/event/schemas/reception.z.d.ts +10 -0
  23. package/dist/cjs/src/service/event/schemas/reception.z.js +3 -1
  24. package/dist/cjs/src/service/event/schemas/serve.z.d.ts +10 -0
  25. package/dist/cjs/src/service/event/schemas/serve.z.js +3 -1
  26. package/dist/cjs/src/service/event/schemas/set.z.d.ts +10 -0
  27. package/dist/cjs/src/service/event/schemas/set.z.js +3 -1
  28. package/dist/cjs/src/service/event/schemas/spike.z.d.ts +10 -0
  29. package/dist/cjs/src/service/event/schemas/spike.z.js +4 -2
  30. package/dist/cjs/src/service/event/serve.js +2 -2
  31. package/dist/cjs/src/service/event/set.js +2 -2
  32. package/dist/cjs/src/service/event/spike.d.ts +3 -2
  33. package/dist/cjs/src/service/event/spike.js +6 -2
  34. package/dist/cjs/src/service/match/box-score.d.ts +6 -0
  35. package/dist/cjs/src/service/match/box-score.js +7 -1
  36. package/dist/cjs/src/service/match/schemas/box-score.z.d.ts +12 -0
  37. package/dist/cjs/src/service/match/schemas/box-score.z.js +15 -2
  38. package/dist/cjs/src/service/player/schemas/player.z.d.ts +12 -0
  39. package/dist/cjs/src/service/player/trait.d.ts +1 -0
  40. package/dist/cjs/src/stat-config/traits.json +55 -11
  41. package/dist/esm/src/data/models/box-score.d.ts +12 -0
  42. package/dist/esm/src/data/models/box-score.js +30 -0
  43. package/dist/esm/src/data/models/views/box-score-totals.d.ts +12 -0
  44. package/dist/esm/src/data/models/views/box-score-totals.js +24 -0
  45. package/dist/esm/src/data/transformers/box-score.js +13 -1
  46. package/dist/esm/src/data/transformers/player.js +7 -1
  47. package/dist/esm/src/data/transformers/rally-event-positional.test.d.ts +1 -0
  48. package/dist/esm/src/data/transformers/rally-event-positional.test.js +54 -0
  49. package/dist/esm/src/data/transformers/rally-event.d.ts +4 -0
  50. package/dist/esm/src/data/transformers/rally-event.js +34 -6
  51. package/dist/esm/src/service/event/block.js +2 -2
  52. package/dist/esm/src/service/event/free-ball.js +2 -2
  53. package/dist/esm/src/service/event/in-play-event.d.ts +19 -1
  54. package/dist/esm/src/service/event/in-play-event.js +16 -1
  55. package/dist/esm/src/service/event/reception.js +2 -2
  56. package/dist/esm/src/service/event/schemas/block.z.d.ts +10 -0
  57. package/dist/esm/src/service/event/schemas/block.z.js +3 -1
  58. package/dist/esm/src/service/event/schemas/free-ball.z.d.ts +10 -0
  59. package/dist/esm/src/service/event/schemas/free-ball.z.js +3 -1
  60. package/dist/esm/src/service/event/schemas/positional.z.d.ts +17 -0
  61. package/dist/esm/src/service/event/schemas/positional.z.js +15 -0
  62. package/dist/esm/src/service/event/schemas/reception.z.d.ts +10 -0
  63. package/dist/esm/src/service/event/schemas/reception.z.js +3 -1
  64. package/dist/esm/src/service/event/schemas/serve.z.d.ts +10 -0
  65. package/dist/esm/src/service/event/schemas/serve.z.js +3 -1
  66. package/dist/esm/src/service/event/schemas/set.z.d.ts +10 -0
  67. package/dist/esm/src/service/event/schemas/set.z.js +3 -1
  68. package/dist/esm/src/service/event/schemas/spike.z.d.ts +10 -0
  69. package/dist/esm/src/service/event/schemas/spike.z.js +4 -2
  70. package/dist/esm/src/service/event/serve.js +2 -2
  71. package/dist/esm/src/service/event/set.js +2 -2
  72. package/dist/esm/src/service/event/spike.d.ts +3 -2
  73. package/dist/esm/src/service/event/spike.js +6 -2
  74. package/dist/esm/src/service/match/box-score.d.ts +6 -0
  75. package/dist/esm/src/service/match/box-score.js +7 -1
  76. package/dist/esm/src/service/match/schemas/box-score.z.d.ts +12 -0
  77. package/dist/esm/src/service/match/schemas/box-score.z.js +15 -2
  78. package/dist/esm/src/service/player/schemas/player.z.d.ts +12 -0
  79. package/dist/esm/src/service/player/trait.d.ts +1 -0
  80. package/dist/esm/src/stat-config/traits.json +55 -11
  81. package/package.json +1 -1
@@ -1,6 +1,16 @@
1
1
  import { z } from 'zod';
2
2
  import { TraitEnum } from '../../player';
3
3
  export declare const SpikeInputSchema: z.ZodObject<{
4
+ contact: z.ZodOptional<z.ZodObject<{
5
+ x: z.ZodNumber;
6
+ y: z.ZodNumber;
7
+ }, z.core.$strip>>;
8
+ landing: z.ZodOptional<z.ZodObject<{
9
+ x: z.ZodNumber;
10
+ y: z.ZodNumber;
11
+ }, z.core.$strip>>;
12
+ speed: z.ZodOptional<z.ZodNumber>;
13
+ digQuality: z.ZodOptional<z.ZodNumber>;
4
14
  playerId: z.ZodUUID;
5
15
  score: z.ZodNumber;
6
16
  target: z.ZodNumber;
@@ -1,7 +1,8 @@
1
1
  import { z } from 'zod';
2
2
  import { TraitEnum } from '../../player';
3
3
  import { EventIncidentSchema } from './incident.z';
4
- const spikeTypeValues = [0, 1, 2, 3, 4, 5];
4
+ import { positionalEventFields } from './positional.z';
5
+ const spikeTypeValues = [0, 1, 2, 3, 4, 5, 6];
5
6
  const spikeFailureValues = [0, 1, 2, 3, 4];
6
7
  const courtTargetValues = Array.from({ length: 13 }, (_, i) => i);
7
8
  export const SpikeInputSchema = z.object({
@@ -11,5 +12,6 @@ export const SpikeInputSchema = z.object({
11
12
  activeTraits: z.array(z.enum(Object.values(TraitEnum))).default([]),
12
13
  failure: z.number().int().refine((v) => spikeFailureValues.includes(v), { message: 'INVALID_SPIKE_FAILURE' }),
13
14
  type: z.number().int().refine((v) => spikeTypeValues.includes(v), { message: 'INVALID_SPIKE_TYPE' }),
14
- incident: EventIncidentSchema.optional()
15
+ incident: EventIncidentSchema.optional(),
16
+ ...positionalEventFields
15
17
  });
@@ -30,8 +30,8 @@ export class Serve extends InPlayEvent {
30
30
  }
31
31
  return new Serve(result.data);
32
32
  }
33
- constructor({ score, playerId, target, failure, type, activeTraits, incident }) {
34
- super({ score, playerId, target, activeTraits, incident, eventType });
33
+ constructor({ score, playerId, target, failure, type, activeTraits, incident, contact, landing, speed, digQuality }) {
34
+ super({ score, playerId, target, activeTraits, incident, eventType, contact, landing, speed, digQuality });
35
35
  this.type = type;
36
36
  this.failure = failure;
37
37
  }
@@ -38,8 +38,8 @@ export class Set extends InPlayEvent {
38
38
  }
39
39
  return new Set(result.data);
40
40
  }
41
- constructor({ score, playerId, target, failure, type, activeTraits, incident, tempo }) {
42
- super({ score, playerId, target, activeTraits, incident, eventType });
41
+ constructor({ score, playerId, target, failure, type, activeTraits, incident, tempo, contact, landing, speed, digQuality }) {
42
+ super({ score, playerId, target, activeTraits, incident, eventType, contact, landing, speed, digQuality });
43
43
  this.type = type;
44
44
  this.failure = failure;
45
45
  this.tempo = tempo;
@@ -5,9 +5,10 @@ export declare enum SpikeTypeEnum {
5
5
  REVERSE_CROSS = 2,
6
6
  TIP = 3,
7
7
  DOWN_BALL = 4,
8
- OVERHAND = 5
8
+ OVERHAND = 5,
9
+ TOOL = 6
9
10
  }
10
- export type SpikeType = SpikeTypeEnum.CROSS_SHOT | SpikeTypeEnum.LINE_SHOT | SpikeTypeEnum.REVERSE_CROSS | SpikeTypeEnum.TIP | SpikeTypeEnum.DOWN_BALL | SpikeTypeEnum.OVERHAND;
11
+ export type SpikeType = SpikeTypeEnum.CROSS_SHOT | SpikeTypeEnum.LINE_SHOT | SpikeTypeEnum.REVERSE_CROSS | SpikeTypeEnum.TIP | SpikeTypeEnum.DOWN_BALL | SpikeTypeEnum.OVERHAND | SpikeTypeEnum.TOOL;
11
12
  export declare enum SpikeFailureEnum {
12
13
  NO_FAILURE = 0,
13
14
  FAULT = 1,
@@ -9,6 +9,10 @@ export var SpikeTypeEnum;
9
9
  SpikeTypeEnum[SpikeTypeEnum["TIP"] = 3] = "TIP";
10
10
  SpikeTypeEnum[SpikeTypeEnum["DOWN_BALL"] = 4] = "DOWN_BALL";
11
11
  SpikeTypeEnum[SpikeTypeEnum["OVERHAND"] = 5] = "OVERHAND";
12
+ // A ball intentionally wiped/deflected off the block and out: the ATTACKER's shot (a kill), the block earns a
13
+ // TOUCH (FIVB: NOT a block error). Distinct from the legacy BlockFailureEnum.TOOL/WIPE, which the older zone
14
+ // engine still uses to mis-book a tool-out as a block error.
15
+ SpikeTypeEnum[SpikeTypeEnum["TOOL"] = 6] = "TOOL";
12
16
  })(SpikeTypeEnum || (SpikeTypeEnum = {}));
13
17
  export var SpikeFailureEnum;
14
18
  (function (SpikeFailureEnum) {
@@ -32,8 +36,8 @@ export class Spike extends InPlayEvent {
32
36
  }
33
37
  return new Spike(result.data);
34
38
  }
35
- constructor({ score, playerId, target, failure, type, activeTraits, incident }) {
36
- super({ score, playerId, target, activeTraits, incident, eventType });
39
+ constructor({ score, playerId, target, failure, type, activeTraits, incident, contact, landing, speed, digQuality }) {
40
+ super({ score, playerId, target, activeTraits, incident, eventType, contact, landing, speed, digQuality });
37
41
  this.type = type;
38
42
  this.failure = failure;
39
43
  }
@@ -2,6 +2,7 @@ export interface AttackStats {
2
2
  attempts: number;
3
3
  kills: number;
4
4
  errors: number;
5
+ blocked: number;
5
6
  }
6
7
  export interface ServeStats {
7
8
  attempts: number;
@@ -12,6 +13,8 @@ export interface ReceptionStats {
12
13
  attempts: number;
13
14
  perfect: number;
14
15
  positive: number;
16
+ ok: number;
17
+ negative: number;
15
18
  overpasses: number;
16
19
  errors: number;
17
20
  }
@@ -28,6 +31,9 @@ export interface SettingStats {
28
31
  }
29
32
  export interface DefenseStats {
30
33
  digs: number;
34
+ digsPerfect: number;
35
+ digsMediocre: number;
36
+ digsBad: number;
31
37
  errors: number;
32
38
  }
33
39
  /**
@@ -27,7 +27,8 @@ export class BoxScore {
27
27
  BoxScore.createEmptyAttackStats = () => ({
28
28
  attempts: 0,
29
29
  kills: 0,
30
- errors: 0
30
+ errors: 0,
31
+ blocked: 0
31
32
  });
32
33
  BoxScore.createEmptyServeStats = () => ({
33
34
  attempts: 0,
@@ -38,6 +39,8 @@ BoxScore.createEmptyReceptionStats = () => ({
38
39
  attempts: 0,
39
40
  perfect: 0,
40
41
  positive: 0,
42
+ ok: 0,
43
+ negative: 0,
41
44
  overpasses: 0,
42
45
  errors: 0
43
46
  });
@@ -54,6 +57,9 @@ BoxScore.createEmptySettingStats = () => ({
54
57
  });
55
58
  BoxScore.createEmptyDefenseStats = () => ({
56
59
  digs: 0,
60
+ digsPerfect: 0,
61
+ digsMediocre: 0,
62
+ digsBad: 0,
57
63
  errors: 0
58
64
  });
59
65
  BoxScore.createEmptyMiscStats = () => ({
@@ -6,6 +6,7 @@ export declare const AttackStatsSchema: z.ZodObject<{
6
6
  attempts: z.ZodNumber;
7
7
  kills: z.ZodNumber;
8
8
  errors: z.ZodNumber;
9
+ blocked: z.ZodNumber;
9
10
  }, z.core.$strip>;
10
11
  export declare const ServeStatsSchema: z.ZodObject<{
11
12
  attempts: z.ZodNumber;
@@ -16,6 +17,8 @@ export declare const ReceptionStatsSchema: z.ZodObject<{
16
17
  attempts: z.ZodNumber;
17
18
  perfect: z.ZodNumber;
18
19
  positive: z.ZodNumber;
20
+ ok: z.ZodNumber;
21
+ negative: z.ZodNumber;
19
22
  overpasses: z.ZodNumber;
20
23
  errors: z.ZodNumber;
21
24
  }, z.core.$strip>;
@@ -32,6 +35,9 @@ export declare const SettingStatsSchema: z.ZodObject<{
32
35
  }, z.core.$strip>;
33
36
  export declare const DefenseStatsSchema: z.ZodObject<{
34
37
  digs: z.ZodNumber;
38
+ digsPerfect: z.ZodNumber;
39
+ digsMediocre: z.ZodNumber;
40
+ digsBad: z.ZodNumber;
35
41
  errors: z.ZodNumber;
36
42
  }, z.core.$strip>;
37
43
  export declare const MiscStatsSchema: z.ZodObject<{
@@ -51,6 +57,7 @@ export declare const BoxScoreInputSchema: z.ZodObject<{
51
57
  attempts: z.ZodNumber;
52
58
  kills: z.ZodNumber;
53
59
  errors: z.ZodNumber;
60
+ blocked: z.ZodNumber;
54
61
  }, z.core.$strip>;
55
62
  serve: z.ZodObject<{
56
63
  attempts: z.ZodNumber;
@@ -61,6 +68,8 @@ export declare const BoxScoreInputSchema: z.ZodObject<{
61
68
  attempts: z.ZodNumber;
62
69
  perfect: z.ZodNumber;
63
70
  positive: z.ZodNumber;
71
+ ok: z.ZodNumber;
72
+ negative: z.ZodNumber;
64
73
  overpasses: z.ZodNumber;
65
74
  errors: z.ZodNumber;
66
75
  }, z.core.$strip>;
@@ -77,6 +86,9 @@ export declare const BoxScoreInputSchema: z.ZodObject<{
77
86
  }, z.core.$strip>;
78
87
  defense: z.ZodObject<{
79
88
  digs: z.ZodNumber;
89
+ digsPerfect: z.ZodNumber;
90
+ digsMediocre: z.ZodNumber;
91
+ digsBad: z.ZodNumber;
80
92
  errors: z.ZodNumber;
81
93
  }, z.core.$strip>;
82
94
  misc: z.ZodObject<{
@@ -9,11 +9,15 @@ const nonNegInt = z.number().int().min(0);
9
9
  export const AttackStatsSchema = z.object({
10
10
  attempts: nonNegInt,
11
11
  kills: nonNegInt,
12
- errors: nonNegInt
12
+ errors: nonNegInt,
13
+ blocked: nonNegInt
13
14
  }).superRefine((v, ctx) => {
14
15
  if (v.errors > v.attempts) {
15
16
  ctx.addIssue({ code: 'custom', message: 'ATTACK_ERRORS_EXCEEDS_ATTEMPTS', path: ['errors'] });
16
17
  }
18
+ if (v.blocked > v.errors) {
19
+ ctx.addIssue({ code: 'custom', message: 'ATTACK_BLOCKED_EXCEEDS_ERRORS', path: ['blocked'] });
20
+ }
17
21
  });
18
22
  export const ServeStatsSchema = z.object({
19
23
  attempts: nonNegInt,
@@ -28,10 +32,12 @@ export const ReceptionStatsSchema = z.object({
28
32
  attempts: nonNegInt,
29
33
  perfect: nonNegInt,
30
34
  positive: nonNegInt,
35
+ ok: nonNegInt,
36
+ negative: nonNegInt,
31
37
  overpasses: nonNegInt,
32
38
  errors: nonNegInt
33
39
  }).superRefine((v, ctx) => {
34
- const sum = v.perfect + v.positive + v.overpasses + v.errors;
40
+ const sum = v.perfect + v.positive + v.ok + v.negative + v.overpasses + v.errors;
35
41
  if (sum > v.attempts) {
36
42
  ctx.addIssue({ code: 'custom', message: 'RECEPTION_COMPONENTS_EXCEED_ATTEMPTS', path: ['attempts'] });
37
43
  }
@@ -54,7 +60,14 @@ export const SettingStatsSchema = z.object({
54
60
  });
55
61
  export const DefenseStatsSchema = z.object({
56
62
  digs: nonNegInt,
63
+ digsPerfect: nonNegInt,
64
+ digsMediocre: nonNegInt,
65
+ digsBad: nonNegInt,
57
66
  errors: nonNegInt
67
+ }).superRefine((v, ctx) => {
68
+ if (v.digsPerfect + v.digsMediocre + v.digsBad > v.digs) {
69
+ ctx.addIssue({ code: 'custom', message: 'DIG_QUALITY_SPLIT_EXCEEDS_DIGS', path: ['digs'] });
70
+ }
58
71
  });
59
72
  export const MiscStatsSchema = z.object({
60
73
  pointsPlayed: nonNegInt,
@@ -92,6 +92,7 @@ export declare const PlayerInputSchema: z.ZodObject<{
92
92
  attempts: z.ZodNumber;
93
93
  kills: z.ZodNumber;
94
94
  errors: z.ZodNumber;
95
+ blocked: z.ZodNumber;
95
96
  }, z.core.$strip>;
96
97
  serve: z.ZodObject<{
97
98
  attempts: z.ZodNumber;
@@ -102,6 +103,8 @@ export declare const PlayerInputSchema: z.ZodObject<{
102
103
  attempts: z.ZodNumber;
103
104
  perfect: z.ZodNumber;
104
105
  positive: z.ZodNumber;
106
+ ok: z.ZodNumber;
107
+ negative: z.ZodNumber;
105
108
  overpasses: z.ZodNumber;
106
109
  errors: z.ZodNumber;
107
110
  }, z.core.$strip>;
@@ -118,6 +121,9 @@ export declare const PlayerInputSchema: z.ZodObject<{
118
121
  }, z.core.$strip>;
119
122
  defense: z.ZodObject<{
120
123
  digs: z.ZodNumber;
124
+ digsPerfect: z.ZodNumber;
125
+ digsMediocre: z.ZodNumber;
126
+ digsBad: z.ZodNumber;
121
127
  errors: z.ZodNumber;
122
128
  }, z.core.$strip>;
123
129
  misc: z.ZodObject<{
@@ -133,6 +139,7 @@ export declare const PlayerInputSchema: z.ZodObject<{
133
139
  attempts: z.ZodNumber;
134
140
  kills: z.ZodNumber;
135
141
  errors: z.ZodNumber;
142
+ blocked: z.ZodNumber;
136
143
  }, z.core.$strip>;
137
144
  serve: z.ZodObject<{
138
145
  attempts: z.ZodNumber;
@@ -143,6 +150,8 @@ export declare const PlayerInputSchema: z.ZodObject<{
143
150
  attempts: z.ZodNumber;
144
151
  perfect: z.ZodNumber;
145
152
  positive: z.ZodNumber;
153
+ ok: z.ZodNumber;
154
+ negative: z.ZodNumber;
146
155
  overpasses: z.ZodNumber;
147
156
  errors: z.ZodNumber;
148
157
  }, z.core.$strip>;
@@ -159,6 +168,9 @@ export declare const PlayerInputSchema: z.ZodObject<{
159
168
  }, z.core.$strip>;
160
169
  defense: z.ZodObject<{
161
170
  digs: z.ZodNumber;
171
+ digsPerfect: z.ZodNumber;
172
+ digsMediocre: z.ZodNumber;
173
+ digsBad: z.ZodNumber;
162
174
  errors: z.ZodNumber;
163
175
  }, z.core.$strip>;
164
176
  misc: z.ZodObject<{
@@ -6,6 +6,7 @@ interface TraitProps {
6
6
  readonly chance: number;
7
7
  readonly roles: Role[];
8
8
  readonly maxRarity?: Rarity;
9
+ readonly params?: Readonly<Record<string, number>>;
9
10
  }
10
11
  export declare enum TraitEnum {
11
12
  /**
@@ -17,7 +17,11 @@
17
17
  "OPPOSITE_HITTER",
18
18
  "OUTSIDE_HITTER",
19
19
  "MIDDLE_BLOCKER"
20
- ]
20
+ ],
21
+ "params": {
22
+ "dumpPower": 2,
23
+ "dumpFreqMult": 1.5
24
+ }
21
25
  },
22
26
  {
23
27
  "name": "MOVING_WALL",
@@ -59,7 +63,11 @@
59
63
  "OPPOSITE_HITTER",
60
64
  "OUTSIDE_HITTER",
61
65
  "MIDDLE_BLOCKER"
62
- ]
66
+ ],
67
+ "params": {
68
+ "servePower": 1.14,
69
+ "receptionPenalty": 0.9
70
+ }
63
71
  },
64
72
  {
65
73
  "name": "VIGOROUS",
@@ -89,7 +97,12 @@
89
97
  "LIBERO",
90
98
  "OUTSIDE_HITTER",
91
99
  "MIDDLE_BLOCKER"
92
- ]
100
+ ],
101
+ "params": {
102
+ "digBonus": 0.1,
103
+ "digCap": 0.85,
104
+ "blockBonus": 0.1
105
+ }
93
106
  },
94
107
  {
95
108
  "name": "QUICK_LEARNER",
@@ -98,7 +111,10 @@
98
111
  "SETTER",
99
112
  "LIBERO",
100
113
  "OUTSIDE_HITTER"
101
- ]
114
+ ],
115
+ "params": {
116
+ "streakThreshold": 3
117
+ }
102
118
  },
103
119
  {
104
120
  "name": "MOMENTUM_ADDICT",
@@ -106,7 +122,13 @@
106
122
  "roles": [
107
123
  "OUTSIDE_HITTER",
108
124
  "OPPOSITE_HITTER"
109
- ]
125
+ ],
126
+ "params": {
127
+ "start": 0.9,
128
+ "perSuccess": 0.03,
129
+ "perKill": 0.06,
130
+ "cap": 1.2
131
+ }
110
132
  },
111
133
  {
112
134
  "name": "LOUDMOUTH",
@@ -115,7 +137,11 @@
115
137
  "OUTSIDE_HITTER",
116
138
  "OPPOSITE_HITTER",
117
139
  "MIDDLE_BLOCKER"
118
- ]
140
+ ],
141
+ "params": {
142
+ "debuffMagnitude": 0.8,
143
+ "debuffRallies": 3
144
+ }
119
145
  },
120
146
  {
121
147
  "name": "TRUE_LEADER",
@@ -138,7 +164,10 @@
138
164
  "OPPOSITE_HITTER",
139
165
  "MIDDLE_BLOCKER",
140
166
  "LIBERO"
141
- ]
167
+ ],
168
+ "params": {
169
+ "threshold": 120
170
+ }
142
171
  },
143
172
  {
144
173
  "name": "CRAFTY",
@@ -148,7 +177,10 @@
148
177
  "OUTSIDE_HITTER",
149
178
  "OPPOSITE_HITTER",
150
179
  "MIDDLE_BLOCKER"
151
- ]
180
+ ],
181
+ "params": {
182
+ "drainMult": 2
183
+ }
152
184
  },
153
185
  {
154
186
  "name": "TENACIOUS",
@@ -159,7 +191,12 @@
159
191
  "OPPOSITE_HITTER",
160
192
  "MIDDLE_BLOCKER",
161
193
  "LIBERO"
162
- ]
194
+ ],
195
+ "params": {
196
+ "base": 0.2,
197
+ "cap": 0.6,
198
+ "minStreak": 3
199
+ }
163
200
  },
164
201
  {
165
202
  "name": "HUNTER",
@@ -169,13 +206,20 @@
169
206
  "OUTSIDE_HITTER",
170
207
  "OPPOSITE_HITTER",
171
208
  "MIDDLE_BLOCKER"
172
- ]
209
+ ],
210
+ "params": {
211
+ "servePower": 1.08,
212
+ "attackFactor": 0.66
213
+ }
173
214
  },
174
215
  {
175
216
  "name": "LAST_RESORT",
176
217
  "chance": 0.1,
177
218
  "roles": [
178
219
  "LIBERO"
179
- ]
220
+ ],
221
+ "params": {
222
+ "freeballScore": 25
223
+ }
180
224
  }
181
225
  ]
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "volleyballsimtypes",
3
- "version": "0.0.501",
3
+ "version": "0.0.503",
4
4
  "description": "vbsim types",
5
5
  "main": "./dist/cjs/src/index.js",
6
6
  "module": "./dist/esm/src/index.js",