volleyballsimtypes 0.0.75 → 0.0.77

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 (143) hide show
  1. package/dist/cjs/src/api/events.d.ts +14 -14
  2. package/dist/cjs/src/api/index.d.ts +7 -8
  3. package/dist/cjs/src/api/index.js +21 -3
  4. package/dist/cjs/src/data/index.d.ts +3 -6
  5. package/dist/cjs/src/data/index.js +18 -125
  6. package/dist/cjs/src/data/models/block.d.ts +3 -1
  7. package/dist/cjs/src/data/models/block.js +8 -7
  8. package/dist/cjs/src/data/models/event.d.ts +3 -1
  9. package/dist/cjs/src/data/models/event.js +8 -7
  10. package/dist/cjs/src/data/models/index.d.ts +32 -64
  11. package/dist/cjs/src/data/models/index.js +46 -65
  12. package/dist/cjs/src/data/models/iteration.d.ts +1 -1
  13. package/dist/cjs/src/data/models/iteration.js +2 -2
  14. package/dist/cjs/src/data/models/reception.d.ts +3 -1
  15. package/dist/cjs/src/data/models/reception.js +8 -7
  16. package/dist/cjs/src/data/models/serve.d.ts +3 -1
  17. package/dist/cjs/src/data/models/serve.js +8 -7
  18. package/dist/cjs/src/data/models/set.d.ts +3 -1
  19. package/dist/cjs/src/data/models/set.js +8 -7
  20. package/dist/cjs/src/data/models/spike.d.ts +3 -1
  21. package/dist/cjs/src/data/models/spike.js +8 -7
  22. package/dist/cjs/src/data/transformers/block.js +16 -14
  23. package/dist/cjs/src/data/transformers/court-target.d.ts +3 -3
  24. package/dist/cjs/src/data/transformers/court-target.js +14 -14
  25. package/dist/cjs/src/data/transformers/event-type.d.ts +3 -3
  26. package/dist/cjs/src/data/transformers/event-type.js +9 -9
  27. package/dist/cjs/src/data/transformers/index.d.ts +35 -36
  28. package/dist/cjs/src/data/transformers/index.js +49 -124
  29. package/dist/cjs/src/data/transformers/libero-replacement.js +3 -3
  30. package/dist/cjs/src/data/transformers/rally.js +8 -8
  31. package/dist/cjs/src/data/transformers/reception.js +15 -13
  32. package/dist/cjs/src/data/transformers/serve.js +16 -14
  33. package/dist/cjs/src/data/transformers/set.js +15 -13
  34. package/dist/cjs/src/data/transformers/spike.js +17 -15
  35. package/dist/cjs/src/index.d.ts +3 -6
  36. package/dist/cjs/src/index.js +17 -185
  37. package/dist/cjs/src/service/event/__stubs__/index.js +7 -6
  38. package/dist/cjs/src/service/event/block.d.ts +7 -7
  39. package/dist/cjs/src/service/event/block.js +24 -24
  40. package/dist/cjs/src/service/event/block.test.js +35 -30
  41. package/dist/cjs/src/service/event/in-play-event.d.ts +7 -5
  42. package/dist/cjs/src/service/event/in-play-event.js +6 -5
  43. package/dist/cjs/src/service/event/libero-replacement.d.ts +4 -4
  44. package/dist/cjs/src/service/event/libero-replacement.js +8 -8
  45. package/dist/cjs/src/service/event/libero-replacement.test.js +7 -7
  46. package/dist/cjs/src/service/event/rally-event.d.ts +3 -3
  47. package/dist/cjs/src/service/event/rally-event.js +12 -12
  48. package/dist/cjs/src/service/event/reception.d.ts +8 -8
  49. package/dist/cjs/src/service/event/reception.js +19 -19
  50. package/dist/cjs/src/service/event/reception.test.js +17 -15
  51. package/dist/cjs/src/service/event/score.test.js +2 -2
  52. package/dist/cjs/src/service/event/serve.d.ts +8 -8
  53. package/dist/cjs/src/service/event/serve.js +20 -20
  54. package/dist/cjs/src/service/event/serve.test.js +17 -15
  55. package/dist/cjs/src/service/event/set.d.ts +8 -8
  56. package/dist/cjs/src/service/event/set.js +19 -19
  57. package/dist/cjs/src/service/event/set.test.js +17 -15
  58. package/dist/cjs/src/service/event/spike.d.ts +8 -8
  59. package/dist/cjs/src/service/event/spike.js +22 -22
  60. package/dist/cjs/src/service/event/spike.test.js +23 -20
  61. package/dist/cjs/src/service/match/{court-target.d.ts → court-target-enum.d.ts} +4 -4
  62. package/dist/cjs/src/service/match/court-target-enum.js +42 -0
  63. package/dist/cjs/src/service/match/court-target.test.js +18 -18
  64. package/dist/cjs/src/service/match/index.d.ts +1 -1
  65. package/dist/cjs/src/service/match/index.js +1 -1
  66. package/dist/cjs/src/service/match/rally.js +1 -1
  67. package/dist/cjs/src/service/match/rally.test.js +2 -2
  68. package/dist/cjs/src/service/player/role.d.ts +1 -1
  69. package/dist/cjs/src/service/team/team.d.ts +3 -3
  70. package/dist/cjs/src/service/team/team.js +6 -6
  71. package/dist/esm/src/api/events.d.ts +14 -14
  72. package/dist/esm/src/api/index.d.ts +7 -8
  73. package/dist/esm/src/api/index.js +7 -2
  74. package/dist/esm/src/data/index.d.ts +3 -6
  75. package/dist/esm/src/data/index.js +3 -4
  76. package/dist/esm/src/data/models/block.d.ts +3 -1
  77. package/dist/esm/src/data/models/block.js +8 -7
  78. package/dist/esm/src/data/models/event.d.ts +3 -1
  79. package/dist/esm/src/data/models/event.js +8 -7
  80. package/dist/esm/src/data/models/index.d.ts +32 -64
  81. package/dist/esm/src/data/models/index.js +32 -33
  82. package/dist/esm/src/data/models/iteration.d.ts +1 -1
  83. package/dist/esm/src/data/models/iteration.js +2 -2
  84. package/dist/esm/src/data/models/reception.d.ts +3 -1
  85. package/dist/esm/src/data/models/reception.js +8 -7
  86. package/dist/esm/src/data/models/serve.d.ts +3 -1
  87. package/dist/esm/src/data/models/serve.js +8 -7
  88. package/dist/esm/src/data/models/set.d.ts +3 -1
  89. package/dist/esm/src/data/models/set.js +8 -7
  90. package/dist/esm/src/data/models/spike.d.ts +3 -1
  91. package/dist/esm/src/data/models/spike.js +8 -7
  92. package/dist/esm/src/data/transformers/block.js +18 -16
  93. package/dist/esm/src/data/transformers/court-target.d.ts +3 -3
  94. package/dist/esm/src/data/transformers/court-target.js +15 -15
  95. package/dist/esm/src/data/transformers/event-type.d.ts +3 -3
  96. package/dist/esm/src/data/transformers/event-type.js +10 -10
  97. package/dist/esm/src/data/transformers/index.d.ts +35 -36
  98. package/dist/esm/src/data/transformers/index.js +35 -36
  99. package/dist/esm/src/data/transformers/libero-replacement.js +4 -4
  100. package/dist/esm/src/data/transformers/rally.js +9 -9
  101. package/dist/esm/src/data/transformers/reception.js +17 -15
  102. package/dist/esm/src/data/transformers/serve.js +18 -16
  103. package/dist/esm/src/data/transformers/set.js +17 -15
  104. package/dist/esm/src/data/transformers/spike.js +19 -17
  105. package/dist/esm/src/index.d.ts +3 -6
  106. package/dist/esm/src/index.js +3 -4
  107. package/dist/esm/src/service/event/__stubs__/index.js +10 -9
  108. package/dist/esm/src/service/event/block.d.ts +7 -7
  109. package/dist/esm/src/service/event/block.js +23 -23
  110. package/dist/esm/src/service/event/block.test.js +38 -33
  111. package/dist/esm/src/service/event/in-play-event.d.ts +7 -5
  112. package/dist/esm/src/service/event/in-play-event.js +6 -5
  113. package/dist/esm/src/service/event/libero-replacement.d.ts +4 -4
  114. package/dist/esm/src/service/event/libero-replacement.js +8 -8
  115. package/dist/esm/src/service/event/libero-replacement.test.js +9 -9
  116. package/dist/esm/src/service/event/rally-event.d.ts +3 -3
  117. package/dist/esm/src/service/event/rally-event.js +11 -11
  118. package/dist/esm/src/service/event/reception.d.ts +8 -8
  119. package/dist/esm/src/service/event/reception.js +18 -18
  120. package/dist/esm/src/service/event/reception.test.js +20 -18
  121. package/dist/esm/src/service/event/score.test.js +3 -3
  122. package/dist/esm/src/service/event/serve.d.ts +8 -8
  123. package/dist/esm/src/service/event/serve.js +19 -19
  124. package/dist/esm/src/service/event/serve.test.js +20 -18
  125. package/dist/esm/src/service/event/set.d.ts +8 -8
  126. package/dist/esm/src/service/event/set.js +18 -18
  127. package/dist/esm/src/service/event/set.test.js +20 -18
  128. package/dist/esm/src/service/event/spike.d.ts +8 -8
  129. package/dist/esm/src/service/event/spike.js +21 -21
  130. package/dist/esm/src/service/event/spike.test.js +26 -23
  131. package/dist/esm/src/service/match/{court-target.d.ts → court-target-enum.d.ts} +4 -4
  132. package/dist/esm/src/service/match/court-target-enum.js +39 -0
  133. package/dist/esm/src/service/match/court-target.test.js +18 -18
  134. package/dist/esm/src/service/match/index.d.ts +1 -1
  135. package/dist/esm/src/service/match/index.js +1 -1
  136. package/dist/esm/src/service/match/rally.js +2 -2
  137. package/dist/esm/src/service/match/rally.test.js +3 -3
  138. package/dist/esm/src/service/player/role.d.ts +1 -1
  139. package/dist/esm/src/service/team/team.d.ts +3 -3
  140. package/dist/esm/src/service/team/team.js +6 -6
  141. package/package.json +1 -1
  142. package/dist/cjs/src/service/match/court-target.js +0 -42
  143. package/dist/esm/src/service/match/court-target.js +0 -39
@@ -1,8 +1,8 @@
1
1
  import { describe, expect, test } from '@jest/globals';
2
- import { Serve, ServeFailure, ServeType } from './serve';
2
+ import { Serve, ServeFailureEnum, ServeTypeEnum } from './serve';
3
3
  import { player } from '../player/__stubs__';
4
- import { CourtTarget } from '../match';
5
- import { EventType } from './rally-event';
4
+ import { CourtTargetEnum } from '../match';
5
+ import { EventTypeEnum } from './rally-event';
6
6
  describe('Serve Test Module', () => {
7
7
  let serve;
8
8
  let failed;
@@ -12,31 +12,33 @@ describe('Serve Test Module', () => {
12
12
  id: '622c36dc-f2d2-44b3-a744-667ea53218b7',
13
13
  order: 0,
14
14
  player: player,
15
- target: CourtTarget.OPPONENT_RIGHT_BACK,
16
- failure: ServeFailure.NO_FAILURE,
17
- type: ServeType.JUMP_TOPSPIN,
18
- eventType: EventType.SERVE,
19
- modifier: 1
15
+ target: CourtTargetEnum.OPPONENT_RIGHT_BACK,
16
+ failure: ServeFailureEnum.NO_FAILURE,
17
+ type: ServeTypeEnum.JUMP_TOPSPIN,
18
+ eventType: EventTypeEnum.SERVE,
19
+ modifier: 1,
20
+ activeTraits: []
20
21
  });
21
22
  failed = new Serve({
22
23
  score: 60,
23
24
  id: '622c36dc-f2d2-44b3-a744-667ea53218b7',
24
25
  order: 0,
25
26
  player: player,
26
- target: CourtTarget.NO_TARGET,
27
- failure: ServeFailure.NET,
28
- type: ServeType.UNDERHAND,
29
- eventType: EventType.SERVE,
30
- modifier: 1
27
+ target: CourtTargetEnum.NO_TARGET,
28
+ failure: ServeFailureEnum.NET,
29
+ type: ServeTypeEnum.UNDERHAND,
30
+ eventType: EventTypeEnum.SERVE,
31
+ modifier: 1,
32
+ activeTraits: []
31
33
  });
32
34
  });
33
35
  test('Should instantiate object properly', () => {
34
- expect(serve.target).toBe(CourtTarget.OPPONENT_RIGHT_BACK);
35
- expect(serve.type).toBe(ServeType.JUMP_TOPSPIN);
36
- expect(serve.eventType).toBe(EventType.SERVE);
36
+ expect(serve.target).toBe(CourtTargetEnum.OPPONENT_RIGHT_BACK);
37
+ expect(serve.type).toBe(ServeTypeEnum.JUMP_TOPSPIN);
38
+ expect(serve.eventType).toBe(EventTypeEnum.SERVE);
37
39
  expect(serve.player.id).toBe(player.id);
38
- expect(serve.failure).toBe(ServeFailure.NO_FAILURE);
39
- expect(failed.failure).toBe(ServeFailure.NET);
40
+ expect(serve.failure).toBe(ServeFailureEnum.NO_FAILURE);
41
+ expect(failed.failure).toBe(ServeFailureEnum.NET);
40
42
  expect(serve.modifier).toBe(1);
41
43
  });
42
44
  // getScore Tests
@@ -1,12 +1,12 @@
1
1
  import { PerformanceStats } from '../player';
2
2
  import { InPlayEvent, InPlayEventOpts } from './in-play-event';
3
- export declare enum SetType {
3
+ export declare enum SetTypeEnum {
4
4
  OVERHAND = 0,
5
5
  UNDERHAND = 1,
6
6
  SPIKE = 2,
7
7
  DUMP = 3
8
8
  }
9
- export declare enum SetFailure {
9
+ export declare enum SetFailureEnum {
10
10
  NO_FAILURE = 0,
11
11
  FAULT = 1,
12
12
  MISS = 2,
@@ -14,13 +14,13 @@ export declare enum SetFailure {
14
14
  OUT_OF_BOUNDS = 4
15
15
  }
16
16
  interface SetOpts extends InPlayEventOpts {
17
- readonly type: SetType;
18
- readonly failure: SetFailure;
17
+ readonly type: SetTypeEnum;
18
+ readonly failure: SetFailureEnum;
19
19
  }
20
20
  export declare class Set extends InPlayEvent {
21
- readonly failure: SetFailure;
22
- readonly type: SetType;
23
- constructor({ id, order, score, player, target, failure, type, eventType, modifier }: SetOpts);
24
- static getScore(stats: PerformanceStats, type: SetType, modifier: number): number;
21
+ readonly failure: SetFailureEnum;
22
+ readonly type: SetTypeEnum;
23
+ constructor({ id, order, score, player, target, failure, type, eventType, modifier, activeTraits }: SetOpts);
24
+ static getScore(stats: PerformanceStats, type: SetTypeEnum, modifier: number): number;
25
25
  }
26
26
  export {};
@@ -1,26 +1,26 @@
1
1
  import { InPlayEvent } from './in-play-event';
2
- export var SetType;
3
- (function (SetType) {
4
- SetType[SetType["OVERHAND"] = 0] = "OVERHAND";
5
- SetType[SetType["UNDERHAND"] = 1] = "UNDERHAND";
6
- SetType[SetType["SPIKE"] = 2] = "SPIKE";
7
- SetType[SetType["DUMP"] = 3] = "DUMP";
8
- })(SetType || (SetType = {}));
9
- export var SetFailure;
10
- (function (SetFailure) {
11
- SetFailure[SetFailure["NO_FAILURE"] = 0] = "NO_FAILURE";
12
- SetFailure[SetFailure["FAULT"] = 1] = "FAULT";
13
- SetFailure[SetFailure["MISS"] = 2] = "MISS";
14
- SetFailure[SetFailure["BAD_PASS"] = 3] = "BAD_PASS";
15
- SetFailure[SetFailure["OUT_OF_BOUNDS"] = 4] = "OUT_OF_BOUNDS";
16
- })(SetFailure || (SetFailure = {}));
2
+ export var SetTypeEnum;
3
+ (function (SetTypeEnum) {
4
+ SetTypeEnum[SetTypeEnum["OVERHAND"] = 0] = "OVERHAND";
5
+ SetTypeEnum[SetTypeEnum["UNDERHAND"] = 1] = "UNDERHAND";
6
+ SetTypeEnum[SetTypeEnum["SPIKE"] = 2] = "SPIKE";
7
+ SetTypeEnum[SetTypeEnum["DUMP"] = 3] = "DUMP";
8
+ })(SetTypeEnum || (SetTypeEnum = {}));
9
+ export var SetFailureEnum;
10
+ (function (SetFailureEnum) {
11
+ SetFailureEnum[SetFailureEnum["NO_FAILURE"] = 0] = "NO_FAILURE";
12
+ SetFailureEnum[SetFailureEnum["FAULT"] = 1] = "FAULT";
13
+ SetFailureEnum[SetFailureEnum["MISS"] = 2] = "MISS";
14
+ SetFailureEnum[SetFailureEnum["BAD_PASS"] = 3] = "BAD_PASS";
15
+ SetFailureEnum[SetFailureEnum["OUT_OF_BOUNDS"] = 4] = "OUT_OF_BOUNDS";
16
+ })(SetFailureEnum || (SetFailureEnum = {}));
17
17
  export class Set extends InPlayEvent {
18
- constructor({ id, order, score, player, target, failure, type, eventType, modifier }) {
19
- super({ id, order, score, player, target, eventType, modifier });
18
+ constructor({ id, order, score, player, target, failure, type, eventType, modifier, activeTraits }) {
19
+ super({ id, order, score, player, target, eventType, modifier, activeTraits });
20
20
  this.type = type;
21
21
  this.failure = failure;
22
22
  }
23
23
  static getScore(stats, type, modifier) {
24
- return Set.calculateScore(stats, 'SET', SetType[type]) * modifier;
24
+ return Set.calculateScore(stats, 'SET', SetTypeEnum[type]) * modifier;
25
25
  }
26
26
  }
@@ -1,8 +1,8 @@
1
1
  import { describe, expect, test } from '@jest/globals';
2
- import { Set, SetFailure, SetType } from './set';
2
+ import { Set, SetFailureEnum, SetTypeEnum } from './set';
3
3
  import { player } from '../player/__stubs__';
4
- import { CourtTarget } from '../match';
5
- import { EventType } from './rally-event';
4
+ import { CourtTargetEnum } from '../match';
5
+ import { EventTypeEnum } from './rally-event';
6
6
  describe('Set Test Module', () => {
7
7
  let set;
8
8
  let failed;
@@ -12,31 +12,33 @@ describe('Set Test Module', () => {
12
12
  id: '622c36dc-f2d2-44b3-a744-667ea53218b7',
13
13
  order: 0,
14
14
  player: player,
15
- target: CourtTarget.OPPONENT_RIGHT_BACK,
16
- failure: SetFailure.NO_FAILURE,
17
- type: SetType.OVERHAND,
18
- eventType: EventType.SET,
19
- modifier: 1
15
+ target: CourtTargetEnum.OPPONENT_RIGHT_BACK,
16
+ failure: SetFailureEnum.NO_FAILURE,
17
+ type: SetTypeEnum.OVERHAND,
18
+ eventType: EventTypeEnum.SET,
19
+ modifier: 1,
20
+ activeTraits: []
20
21
  });
21
22
  failed = new Set({
22
23
  score: 60,
23
24
  id: '622c36dc-f2d2-44b3-a744-667ea53218b7',
24
25
  order: 0,
25
26
  player: player,
26
- target: CourtTarget.NO_TARGET,
27
- failure: SetFailure.OUT_OF_BOUNDS,
28
- type: SetType.DUMP,
29
- eventType: EventType.SET,
30
- modifier: 1
27
+ target: CourtTargetEnum.NO_TARGET,
28
+ failure: SetFailureEnum.OUT_OF_BOUNDS,
29
+ type: SetTypeEnum.DUMP,
30
+ eventType: EventTypeEnum.SET,
31
+ modifier: 1,
32
+ activeTraits: []
31
33
  });
32
34
  });
33
35
  test('Should instantiate object properly', () => {
34
- expect(set.target).toBe(CourtTarget.OPPONENT_RIGHT_BACK);
35
- expect(set.type).toBe(SetType.OVERHAND);
36
- expect(set.eventType).toBe(EventType.SET);
36
+ expect(set.target).toBe(CourtTargetEnum.OPPONENT_RIGHT_BACK);
37
+ expect(set.type).toBe(SetTypeEnum.OVERHAND);
38
+ expect(set.eventType).toBe(EventTypeEnum.SET);
37
39
  expect(set.player.id).toBe(player.id);
38
- expect(set.failure).toBe(SetFailure.NO_FAILURE);
39
- expect(failed.failure).toBe(SetFailure.OUT_OF_BOUNDS);
40
+ expect(set.failure).toBe(SetFailureEnum.NO_FAILURE);
41
+ expect(failed.failure).toBe(SetFailureEnum.OUT_OF_BOUNDS);
40
42
  expect(set.modifier).toBe(1);
41
43
  });
42
44
  // getScore Tests
@@ -1,6 +1,6 @@
1
1
  import { InPlayEvent, InPlayEventOpts } from './in-play-event';
2
2
  import { Player } from '../player';
3
- export declare enum SpikeType {
3
+ export declare enum SpikeTypeEnum {
4
4
  CROSS_SHOT = 0,
5
5
  LINE_SHOT = 1,
6
6
  TOOL_SHOT = 2,
@@ -8,7 +8,7 @@ export declare enum SpikeType {
8
8
  DOWN_BALL = 4,
9
9
  OVERHAND = 5
10
10
  }
11
- export declare enum SpikeFailure {
11
+ export declare enum SpikeFailureEnum {
12
12
  NO_FAILURE = 0,
13
13
  FAULT = 1,
14
14
  MISS = 2,
@@ -16,13 +16,13 @@ export declare enum SpikeFailure {
16
16
  NET = 4
17
17
  }
18
18
  interface SpikeOpts extends InPlayEventOpts {
19
- readonly type: SpikeType;
20
- readonly failure: SpikeFailure;
19
+ readonly type: SpikeTypeEnum;
20
+ readonly failure: SpikeFailureEnum;
21
21
  }
22
22
  export declare class Spike extends InPlayEvent {
23
- readonly failure: SpikeFailure;
24
- readonly type: SpikeType;
25
- constructor({ id, order, score, player, target, failure, type, eventType, modifier }: SpikeOpts);
26
- static getScore(player: Player, type: SpikeType, modifier: number, isBackRow: boolean): number;
23
+ readonly failure: SpikeFailureEnum;
24
+ readonly type: SpikeTypeEnum;
25
+ constructor({ id, order, score, player, target, failure, type, eventType, modifier, activeTraits }: SpikeOpts);
26
+ static getScore(player: Player, type: SpikeTypeEnum, modifier: number, isBackRow: boolean): number;
27
27
  }
28
28
  export {};
@@ -1,30 +1,30 @@
1
1
  import { InPlayEvent } from './in-play-event';
2
- export var SpikeType;
3
- (function (SpikeType) {
4
- SpikeType[SpikeType["CROSS_SHOT"] = 0] = "CROSS_SHOT";
5
- SpikeType[SpikeType["LINE_SHOT"] = 1] = "LINE_SHOT";
6
- SpikeType[SpikeType["TOOL_SHOT"] = 2] = "TOOL_SHOT";
7
- SpikeType[SpikeType["TIP"] = 3] = "TIP";
8
- SpikeType[SpikeType["DOWN_BALL"] = 4] = "DOWN_BALL";
9
- SpikeType[SpikeType["OVERHAND"] = 5] = "OVERHAND";
10
- })(SpikeType || (SpikeType = {}));
11
- export var SpikeFailure;
12
- (function (SpikeFailure) {
13
- SpikeFailure[SpikeFailure["NO_FAILURE"] = 0] = "NO_FAILURE";
14
- SpikeFailure[SpikeFailure["FAULT"] = 1] = "FAULT";
15
- SpikeFailure[SpikeFailure["MISS"] = 2] = "MISS";
16
- SpikeFailure[SpikeFailure["OUT_OF_BOUNDS"] = 3] = "OUT_OF_BOUNDS";
17
- SpikeFailure[SpikeFailure["NET"] = 4] = "NET";
18
- })(SpikeFailure || (SpikeFailure = {}));
2
+ export var SpikeTypeEnum;
3
+ (function (SpikeTypeEnum) {
4
+ SpikeTypeEnum[SpikeTypeEnum["CROSS_SHOT"] = 0] = "CROSS_SHOT";
5
+ SpikeTypeEnum[SpikeTypeEnum["LINE_SHOT"] = 1] = "LINE_SHOT";
6
+ SpikeTypeEnum[SpikeTypeEnum["TOOL_SHOT"] = 2] = "TOOL_SHOT";
7
+ SpikeTypeEnum[SpikeTypeEnum["TIP"] = 3] = "TIP";
8
+ SpikeTypeEnum[SpikeTypeEnum["DOWN_BALL"] = 4] = "DOWN_BALL";
9
+ SpikeTypeEnum[SpikeTypeEnum["OVERHAND"] = 5] = "OVERHAND";
10
+ })(SpikeTypeEnum || (SpikeTypeEnum = {}));
11
+ export var SpikeFailureEnum;
12
+ (function (SpikeFailureEnum) {
13
+ SpikeFailureEnum[SpikeFailureEnum["NO_FAILURE"] = 0] = "NO_FAILURE";
14
+ SpikeFailureEnum[SpikeFailureEnum["FAULT"] = 1] = "FAULT";
15
+ SpikeFailureEnum[SpikeFailureEnum["MISS"] = 2] = "MISS";
16
+ SpikeFailureEnum[SpikeFailureEnum["OUT_OF_BOUNDS"] = 3] = "OUT_OF_BOUNDS";
17
+ SpikeFailureEnum[SpikeFailureEnum["NET"] = 4] = "NET";
18
+ })(SpikeFailureEnum || (SpikeFailureEnum = {}));
19
19
  export class Spike extends InPlayEvent {
20
- constructor({ id, order, score, player, target, failure, type, eventType, modifier }) {
21
- super({ id, order, score, player, target, eventType, modifier });
20
+ constructor({ id, order, score, player, target, failure, type, eventType, modifier, activeTraits }) {
21
+ super({ id, order, score, player, target, eventType, modifier, activeTraits });
22
22
  this.type = type;
23
23
  this.failure = failure;
24
24
  }
25
25
  static getScore(player, type, modifier, isBackRow) {
26
- let score = Spike.calculateScore(player.stats, 'SPIKE', SpikeType[type]);
27
- if (![SpikeType.DOWN_BALL, SpikeType.OVERHAND, SpikeType.TIP].includes(type) && isBackRow) {
26
+ let score = Spike.calculateScore(player.stats, 'SPIKE', SpikeTypeEnum[type]);
27
+ if (![SpikeTypeEnum.DOWN_BALL, SpikeTypeEnum.OVERHAND, SpikeTypeEnum.TIP].includes(type) && isBackRow) {
28
28
  score = score * 0.7 + player.stats.backAttack * 0.3;
29
29
  }
30
30
  return score * modifier;
@@ -1,8 +1,8 @@
1
1
  import { describe, expect, test } from '@jest/globals';
2
- import { Spike, SpikeFailure, SpikeType } from './spike';
2
+ import { Spike, SpikeFailureEnum, SpikeTypeEnum } from './spike';
3
3
  import { player } from '../player/__stubs__';
4
- import { CourtTarget } from '../match';
5
- import { EventType } from './rally-event';
4
+ import { CourtTargetEnum } from '../match';
5
+ import { EventTypeEnum } from './rally-event';
6
6
  import { v4 as uuidv4 } from 'uuid';
7
7
  describe('Spike Test Module', () => {
8
8
  let spike;
@@ -13,43 +13,46 @@ describe('Spike Test Module', () => {
13
13
  id: uuidv4(),
14
14
  order: 1,
15
15
  player: player,
16
- target: CourtTarget.OPPONENT_RIGHT_BACK,
17
- failure: SpikeFailure.NO_FAILURE,
18
- type: SpikeType.CROSS_SHOT,
19
- eventType: EventType.SPIKE,
16
+ target: CourtTargetEnum.OPPONENT_RIGHT_BACK,
17
+ failure: SpikeFailureEnum.NO_FAILURE,
18
+ type: SpikeTypeEnum.CROSS_SHOT,
19
+ eventType: EventTypeEnum.SPIKE,
20
20
  modifier: 1,
21
- score: Spike.getScore(player, SpikeType.CROSS_SHOT, 1, false)
21
+ score: Spike.getScore(player, SpikeTypeEnum.CROSS_SHOT, 1, false),
22
+ activeTraits: []
22
23
  });
23
24
  failed = new Spike({
24
25
  id: uuidv4(),
25
26
  order: 1,
26
27
  player: player,
27
- target: CourtTarget.NO_TARGET,
28
- failure: SpikeFailure.OUT_OF_BOUNDS,
29
- type: SpikeType.TIP,
30
- eventType: EventType.SPIKE,
28
+ target: CourtTargetEnum.NO_TARGET,
29
+ failure: SpikeFailureEnum.OUT_OF_BOUNDS,
30
+ type: SpikeTypeEnum.TIP,
31
+ eventType: EventTypeEnum.SPIKE,
31
32
  modifier: 1,
32
- score: Spike.getScore(player, SpikeType.TIP, 1, false)
33
+ score: Spike.getScore(player, SpikeTypeEnum.TIP, 1, false),
34
+ activeTraits: []
33
35
  });
34
36
  backAttack = new Spike({
35
37
  id: uuidv4(),
36
38
  order: 1,
37
39
  player: player,
38
- target: CourtTarget.OPPONENT_RIGHT_BACK,
39
- failure: SpikeFailure.NO_FAILURE,
40
- type: SpikeType.CROSS_SHOT,
41
- eventType: EventType.SPIKE,
40
+ target: CourtTargetEnum.OPPONENT_RIGHT_BACK,
41
+ failure: SpikeFailureEnum.NO_FAILURE,
42
+ type: SpikeTypeEnum.CROSS_SHOT,
43
+ eventType: EventTypeEnum.SPIKE,
42
44
  modifier: 1,
43
- score: Spike.getScore(player, SpikeType.CROSS_SHOT, 1, true)
45
+ score: Spike.getScore(player, SpikeTypeEnum.CROSS_SHOT, 1, true),
46
+ activeTraits: []
44
47
  });
45
48
  });
46
49
  test('Should instantiate object properly', () => {
47
- expect(spike.target).toBe(CourtTarget.OPPONENT_RIGHT_BACK);
48
- expect(spike.type).toBe(SpikeType.CROSS_SHOT);
49
- expect(spike.eventType).toBe(EventType.SPIKE);
50
+ expect(spike.target).toBe(CourtTargetEnum.OPPONENT_RIGHT_BACK);
51
+ expect(spike.type).toBe(SpikeTypeEnum.CROSS_SHOT);
52
+ expect(spike.eventType).toBe(EventTypeEnum.SPIKE);
50
53
  expect(spike.player.id).toBe(player.id);
51
- expect(spike.failure).toBe(SpikeFailure.NO_FAILURE);
52
- expect(failed.failure).toBe(SpikeFailure.OUT_OF_BOUNDS);
54
+ expect(spike.failure).toBe(SpikeFailureEnum.NO_FAILURE);
55
+ expect(failed.failure).toBe(SpikeFailureEnum.OUT_OF_BOUNDS);
53
56
  expect(spike.modifier).toBe(1);
54
57
  });
55
58
  // getScore Tests
@@ -1,5 +1,5 @@
1
1
  import { CourtPosition } from './court-position';
2
- export declare enum CourtTarget {
2
+ export declare enum CourtTargetEnum {
3
3
  NO_TARGET = 0,
4
4
  OPPONENT_RIGHT_BACK = 7,
5
5
  OPPONENT_MIDDLE_BACK = 12,
@@ -14,8 +14,8 @@ export declare enum CourtTarget {
14
14
  TEAM_MIDDLE_BACK = 6,
15
15
  TEAM_RIGHT_BACK = 1
16
16
  }
17
- export declare namespace CourtTarget {
18
- function getTeamSide(): CourtTarget[];
19
- function getOpponentSide(): CourtTarget[];
17
+ export declare namespace CourtTargetEnum {
18
+ function getTeamSide(): CourtTargetEnum[];
19
+ function getOpponentSide(): CourtTargetEnum[];
20
20
  function getSidePosition(position: number): CourtPosition;
21
21
  }
@@ -0,0 +1,39 @@
1
+ export var CourtTargetEnum;
2
+ (function (CourtTargetEnum) {
3
+ CourtTargetEnum[CourtTargetEnum["NO_TARGET"] = 0] = "NO_TARGET";
4
+ CourtTargetEnum[CourtTargetEnum["OPPONENT_RIGHT_BACK"] = 7] = "OPPONENT_RIGHT_BACK";
5
+ CourtTargetEnum[CourtTargetEnum["OPPONENT_MIDDLE_BACK"] = 12] = "OPPONENT_MIDDLE_BACK";
6
+ CourtTargetEnum[CourtTargetEnum["OPPONENT_LEFT_BACK"] = 11] = "OPPONENT_LEFT_BACK";
7
+ CourtTargetEnum[CourtTargetEnum["OPPONENT_RIGHT_FRONT"] = 8] = "OPPONENT_RIGHT_FRONT";
8
+ CourtTargetEnum[CourtTargetEnum["OPPONENT_MIDDLE_FRONT"] = 9] = "OPPONENT_MIDDLE_FRONT";
9
+ CourtTargetEnum[CourtTargetEnum["OPPONENT_LEFT_FRONT"] = 10] = "OPPONENT_LEFT_FRONT";
10
+ // --------------------------------------------------------------------------------
11
+ CourtTargetEnum[CourtTargetEnum["TEAM_LEFT_FRONT"] = 4] = "TEAM_LEFT_FRONT";
12
+ CourtTargetEnum[CourtTargetEnum["TEAM_MIDDLE_FRONT"] = 3] = "TEAM_MIDDLE_FRONT";
13
+ CourtTargetEnum[CourtTargetEnum["TEAM_RIGHT_FRONT"] = 2] = "TEAM_RIGHT_FRONT";
14
+ CourtTargetEnum[CourtTargetEnum["TEAM_LEFT_BACK"] = 5] = "TEAM_LEFT_BACK";
15
+ CourtTargetEnum[CourtTargetEnum["TEAM_MIDDLE_BACK"] = 6] = "TEAM_MIDDLE_BACK";
16
+ CourtTargetEnum[CourtTargetEnum["TEAM_RIGHT_BACK"] = 1] = "TEAM_RIGHT_BACK";
17
+ })(CourtTargetEnum || (CourtTargetEnum = {}));
18
+ // eslint-disable-next-line @typescript-eslint/no-namespace
19
+ (function (CourtTargetEnum) {
20
+ function getTeamSide() {
21
+ return [CourtTargetEnum.TEAM_RIGHT_BACK, CourtTargetEnum.TEAM_RIGHT_FRONT, CourtTargetEnum.TEAM_MIDDLE_FRONT,
22
+ CourtTargetEnum.TEAM_LEFT_FRONT, CourtTargetEnum.TEAM_LEFT_BACK, CourtTargetEnum.TEAM_MIDDLE_BACK];
23
+ }
24
+ CourtTargetEnum.getTeamSide = getTeamSide;
25
+ function getOpponentSide() {
26
+ return [CourtTargetEnum.OPPONENT_RIGHT_BACK, CourtTargetEnum.OPPONENT_RIGHT_FRONT, CourtTargetEnum.OPPONENT_MIDDLE_FRONT,
27
+ CourtTargetEnum.OPPONENT_LEFT_FRONT, CourtTargetEnum.OPPONENT_LEFT_BACK, CourtTargetEnum.OPPONENT_MIDDLE_BACK];
28
+ }
29
+ CourtTargetEnum.getOpponentSide = getOpponentSide;
30
+ function getSidePosition(position) {
31
+ if (position < 1 || position > 12)
32
+ throw new Error('POSITION_INDEX_OUT_OF_BOUNDS');
33
+ if (position > 6)
34
+ return position - 6;
35
+ else
36
+ return position;
37
+ }
38
+ CourtTargetEnum.getSidePosition = getSidePosition;
39
+ })(CourtTargetEnum || (CourtTargetEnum = {}));
@@ -1,35 +1,35 @@
1
1
  import { describe, expect, test } from '@jest/globals';
2
- import { CourtTarget } from './court-target';
2
+ import { CourtTargetEnum } from './court-target-enum';
3
3
  describe('CourtTarget Test Module', () => {
4
4
  // getSidePosition Tests
5
5
  test('Should get correct court position', () => {
6
6
  for (let i = 1; i < 7; i++) {
7
- expect(CourtTarget.getSidePosition(i)).toBe(i);
8
- expect(CourtTarget.getSidePosition(i + 6)).toBe(i);
7
+ expect(CourtTargetEnum.getSidePosition(i)).toBe(i);
8
+ expect(CourtTargetEnum.getSidePosition(i + 6)).toBe(i);
9
9
  }
10
10
  });
11
11
  test('Should throw Error when position is out of bounds', () => {
12
- function position() { CourtTarget.getSidePosition(0); }
12
+ function position() { CourtTargetEnum.getSidePosition(0); }
13
13
  expect(position).toThrow(/^POSITION_INDEX_OUT_OF_BOUNDS$/);
14
14
  });
15
15
  // getTeamSide Tests
16
16
  test('Should return team positions', () => {
17
- const positions = CourtTarget.getTeamSide();
18
- expect(positions[0]).toBe(CourtTarget.TEAM_RIGHT_BACK);
19
- expect(positions[1]).toBe(CourtTarget.TEAM_RIGHT_FRONT);
20
- expect(positions[2]).toBe(CourtTarget.TEAM_MIDDLE_FRONT);
21
- expect(positions[3]).toBe(CourtTarget.TEAM_LEFT_FRONT);
22
- expect(positions[4]).toBe(CourtTarget.TEAM_LEFT_BACK);
23
- expect(positions[5]).toBe(CourtTarget.TEAM_MIDDLE_BACK);
17
+ const positions = CourtTargetEnum.getTeamSide();
18
+ expect(positions[0]).toBe(CourtTargetEnum.TEAM_RIGHT_BACK);
19
+ expect(positions[1]).toBe(CourtTargetEnum.TEAM_RIGHT_FRONT);
20
+ expect(positions[2]).toBe(CourtTargetEnum.TEAM_MIDDLE_FRONT);
21
+ expect(positions[3]).toBe(CourtTargetEnum.TEAM_LEFT_FRONT);
22
+ expect(positions[4]).toBe(CourtTargetEnum.TEAM_LEFT_BACK);
23
+ expect(positions[5]).toBe(CourtTargetEnum.TEAM_MIDDLE_BACK);
24
24
  });
25
25
  // getOpponentSide Tests
26
26
  test('Should return opponent team positions', () => {
27
- const positions = CourtTarget.getOpponentSide();
28
- expect(positions[0]).toBe(CourtTarget.OPPONENT_RIGHT_BACK);
29
- expect(positions[1]).toBe(CourtTarget.OPPONENT_RIGHT_FRONT);
30
- expect(positions[2]).toBe(CourtTarget.OPPONENT_MIDDLE_FRONT);
31
- expect(positions[3]).toBe(CourtTarget.OPPONENT_LEFT_FRONT);
32
- expect(positions[4]).toBe(CourtTarget.OPPONENT_LEFT_BACK);
33
- expect(positions[5]).toBe(CourtTarget.OPPONENT_MIDDLE_BACK);
27
+ const positions = CourtTargetEnum.getOpponentSide();
28
+ expect(positions[0]).toBe(CourtTargetEnum.OPPONENT_RIGHT_BACK);
29
+ expect(positions[1]).toBe(CourtTargetEnum.OPPONENT_RIGHT_FRONT);
30
+ expect(positions[2]).toBe(CourtTargetEnum.OPPONENT_MIDDLE_FRONT);
31
+ expect(positions[3]).toBe(CourtTargetEnum.OPPONENT_LEFT_FRONT);
32
+ expect(positions[4]).toBe(CourtTargetEnum.OPPONENT_LEFT_BACK);
33
+ expect(positions[5]).toBe(CourtTargetEnum.OPPONENT_MIDDLE_BACK);
34
34
  });
35
35
  });
@@ -3,5 +3,5 @@ export * from './match-rating';
3
3
  export * from './match-set';
4
4
  export * from './rally';
5
5
  export * from './court-position';
6
- export * from './court-target';
6
+ export * from './court-target-enum';
7
7
  export * from './match-team';
@@ -3,5 +3,5 @@ export * from './match-rating';
3
3
  export * from './match-set';
4
4
  export * from './rally';
5
5
  export * from './court-position';
6
- export * from './court-target';
6
+ export * from './court-target-enum';
7
7
  export * from './match-team';
@@ -1,5 +1,5 @@
1
1
  import { validateUUID } from '../utils';
2
- import { EventType } from '../event/rally-event';
2
+ import { EventTypeEnum } from '../event/rally-event';
3
3
  export var RallyState;
4
4
  (function (RallyState) {
5
5
  RallyState[RallyState["NEW"] = 0] = "NEW";
@@ -33,7 +33,7 @@ export class Rally {
33
33
  return this._state;
34
34
  }
35
35
  get score() {
36
- return this.events.find(e => e.eventType === EventType.SCORE);
36
+ return this.events.find(e => e.eventType === EventTypeEnum.SCORE);
37
37
  }
38
38
  isOver() {
39
39
  return this._state === RallyState.FINISHED;
@@ -1,7 +1,7 @@
1
1
  import { describe, expect, test } from '@jest/globals';
2
2
  import { Rally, RallyState } from './rally';
3
3
  import { score, serve } from '../event/__stubs__';
4
- import { EventType } from '../event/rally-event';
4
+ import { EventTypeEnum } from '../event/rally-event';
5
5
  import { team } from '../team/__stubs__';
6
6
  describe('Rally Test Module', () => {
7
7
  let rally;
@@ -44,7 +44,7 @@ describe('Rally Test Module', () => {
44
44
  test('Should add event to event array', () => {
45
45
  expect(rally.events.length).toBe(0);
46
46
  rally.addEvent(serve);
47
- expect(rally.events.at(-1)?.eventType).toBe(EventType.SERVE);
47
+ expect(rally.events.at(-1)?.eventType).toBe(EventTypeEnum.SERVE);
48
48
  });
49
49
  // isOver Tests
50
50
  test('Should return false if rally state is not FINISHED', () => {
@@ -66,7 +66,7 @@ describe('Rally Test Module', () => {
66
66
  test('Should return Score if events array contains a Score', () => {
67
67
  rally.addEvent(score);
68
68
  expect(rally.score).not.toBeUndefined();
69
- expect(rally.score?.eventType).toBe(EventType.SCORE);
69
+ expect(rally.score?.eventType).toBe(EventTypeEnum.SCORE);
70
70
  });
71
71
  // RallyState Tests
72
72
  test('Should get next state', () => {
@@ -1,6 +1,5 @@
1
1
  import { PerformanceStats } from './performance-stats';
2
2
  export declare class Role {
3
- readonly name: string;
4
3
  static readonly SETTER: Role;
5
4
  static readonly LIBERO: Role;
6
5
  static readonly OUTSIDE_HITTER: Role;
@@ -8,6 +7,7 @@ export declare class Role {
8
7
  static readonly MIDDLE_BLOCKER: Role;
9
8
  static readonly DEFENSIVE_SPECIALIST: Role;
10
9
  private static readonly ROLES;
10
+ readonly name: string;
11
11
  private constructor();
12
12
  static getRoles(): Role[];
13
13
  static calculateScore(stats: PerformanceStats, role: Role): number;
@@ -20,12 +20,12 @@ export declare class Team {
20
20
  readonly coach?: Coach;
21
21
  readonly league?: League;
22
22
  readonly country?: Country;
23
- private _rating;
24
23
  constructor({ id, rating, name, shortName, country, roster, coach, league }: TeamOpts);
25
- isPlayerInRoster(player: Player): boolean;
26
- toString(): string;
24
+ private _rating;
27
25
  get rating(): number;
28
26
  set rating(value: number);
27
+ isPlayerInRoster(player: Player): boolean;
28
+ toString(): string;
29
29
  updateRating(ratingChange: number): void;
30
30
  }
31
31
  export {};
@@ -12,18 +12,18 @@ export class Team {
12
12
  this.country = country;
13
13
  this.league = league;
14
14
  }
15
- isPlayerInRoster(player) {
16
- return this.roster.some(p => p.id === player.id);
17
- }
18
- toString() {
19
- return `${this.name} [${this.shortName}] (${this.country?.name}) ELO=${this._rating}`;
20
- }
21
15
  get rating() {
22
16
  return this._rating;
23
17
  }
24
18
  set rating(value) {
25
19
  this._rating = value;
26
20
  }
21
+ isPlayerInRoster(player) {
22
+ return this.roster.some(p => p.id === player.id);
23
+ }
24
+ toString() {
25
+ return `${this.name} [${this.shortName}] (${this.country?.name}) ELO=${this._rating}`;
26
+ }
27
27
  updateRating(ratingChange) {
28
28
  if (Math.abs(ratingChange) > MatchRating.K)
29
29
  throw new Error(`INVALID RATING CHANGE: ${ratingChange}`);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "volleyballsimtypes",
3
- "version": "0.0.75",
3
+ "version": "0.0.77",
4
4
  "description": "vbsim types",
5
5
  "main": "./dist/cjs/src/index.js",
6
6
  "module": "./dist/esm/src/index.js",