volleyballsimtypes 0.0.74 → 0.0.76
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.
- package/dist/cjs/src/api/events.d.ts +14 -14
- package/dist/cjs/src/api/index.d.ts +7 -8
- package/dist/cjs/src/api/index.js +21 -3
- package/dist/cjs/src/data/index.d.ts +4 -6
- package/dist/cjs/src/data/index.js +18 -93
- package/dist/cjs/src/data/models/index.d.ts +62 -64
- package/dist/cjs/src/data/models/index.js +33 -33
- package/dist/cjs/src/data/transformers/block.js +12 -12
- package/dist/cjs/src/data/transformers/court-target.d.ts +3 -3
- package/dist/cjs/src/data/transformers/court-target.js +14 -14
- package/dist/cjs/src/data/transformers/event-type.d.ts +3 -3
- package/dist/cjs/src/data/transformers/event-type.js +9 -9
- package/dist/cjs/src/data/transformers/index.d.ts +35 -36
- package/dist/cjs/src/data/transformers/index.js +49 -124
- package/dist/cjs/src/data/transformers/libero-replacement.js +3 -3
- package/dist/cjs/src/data/transformers/rally.js +8 -8
- package/dist/cjs/src/data/transformers/reception.js +11 -11
- package/dist/cjs/src/data/transformers/serve.js +12 -12
- package/dist/cjs/src/data/transformers/set.js +11 -11
- package/dist/cjs/src/data/transformers/spike.js +13 -13
- package/dist/cjs/src/index.d.ts +4 -6
- package/dist/cjs/src/index.js +20 -65
- package/dist/cjs/src/service/coach/formation.d.ts +6 -6
- package/dist/cjs/src/service/coach/formation.js +1 -1
- package/dist/cjs/src/service/coach/index.d.ts +2 -3
- package/dist/cjs/src/service/coach/index.js +16 -5
- package/dist/cjs/src/service/competition/index.d.ts +7 -8
- package/dist/cjs/src/service/competition/index.js +21 -15
- package/dist/cjs/src/service/country/index.d.ts +1 -2
- package/dist/cjs/src/service/country/index.js +15 -3
- package/dist/cjs/src/service/draft/index.d.ts +2 -3
- package/dist/cjs/src/service/draft/index.js +16 -5
- package/dist/cjs/src/service/event/__stubs__/index.js +5 -5
- package/dist/cjs/src/service/event/block.d.ts +6 -6
- package/dist/cjs/src/service/event/block.js +22 -22
- package/dist/cjs/src/service/event/block.test.js +25 -25
- package/dist/cjs/src/service/event/in-play-event.d.ts +3 -3
- package/dist/cjs/src/service/event/index.d.ts +10 -11
- package/dist/cjs/src/service/event/index.js +24 -33
- package/dist/cjs/src/service/event/libero-replacement.d.ts +3 -3
- package/dist/cjs/src/service/event/libero-replacement.js +7 -7
- package/dist/cjs/src/service/event/libero-replacement.test.js +7 -7
- package/dist/cjs/src/service/event/rally-event.d.ts +3 -3
- package/dist/cjs/src/service/event/rally-event.js +12 -12
- package/dist/cjs/src/service/event/reception.d.ts +7 -7
- package/dist/cjs/src/service/event/reception.js +17 -17
- package/dist/cjs/src/service/event/reception.test.js +13 -13
- package/dist/cjs/src/service/event/score.test.js +2 -2
- package/dist/cjs/src/service/event/serve.d.ts +7 -7
- package/dist/cjs/src/service/event/serve.js +18 -18
- package/dist/cjs/src/service/event/serve.test.js +13 -13
- package/dist/cjs/src/service/event/set.d.ts +7 -7
- package/dist/cjs/src/service/event/set.js +17 -17
- package/dist/cjs/src/service/event/set.test.js +13 -13
- package/dist/cjs/src/service/event/spike.d.ts +7 -7
- package/dist/cjs/src/service/event/spike.js +20 -20
- package/dist/cjs/src/service/event/spike.test.js +20 -20
- package/dist/cjs/src/service/index.d.ts +9 -10
- package/dist/cjs/src/service/index.js +23 -68
- package/dist/cjs/src/service/match/{court-target.d.ts → court-target-enum.d.ts} +4 -4
- package/dist/cjs/src/service/match/court-target-enum.js +42 -0
- package/dist/cjs/src/service/match/court-target.test.js +18 -18
- package/dist/cjs/src/service/match/index.d.ts +7 -8
- package/dist/cjs/src/service/match/index.js +21 -18
- package/dist/cjs/src/service/match/rally.js +1 -1
- package/dist/cjs/src/service/match/rally.test.js +2 -2
- package/dist/cjs/src/service/player/index.d.ts +5 -6
- package/dist/cjs/src/service/player/index.js +19 -11
- package/dist/cjs/src/service/player/role.d.ts +13 -11
- package/dist/cjs/src/service/player/role.js +32 -20
- package/dist/cjs/src/service/player/trait.js +12 -5
- package/dist/cjs/src/service/team/index.d.ts +1 -2
- package/dist/cjs/src/service/team/index.js +15 -3
- package/dist/esm/src/api/events.d.ts +14 -14
- package/dist/esm/src/api/index.d.ts +7 -8
- package/dist/esm/src/api/index.js +7 -2
- package/dist/esm/src/data/index.d.ts +4 -6
- package/dist/esm/src/data/index.js +3 -4
- package/dist/esm/src/data/models/index.d.ts +62 -64
- package/dist/esm/src/data/models/index.js +32 -33
- package/dist/esm/src/data/transformers/block.js +13 -13
- package/dist/esm/src/data/transformers/court-target.d.ts +3 -3
- package/dist/esm/src/data/transformers/court-target.js +15 -15
- package/dist/esm/src/data/transformers/event-type.d.ts +3 -3
- package/dist/esm/src/data/transformers/event-type.js +10 -10
- package/dist/esm/src/data/transformers/index.d.ts +35 -36
- package/dist/esm/src/data/transformers/index.js +35 -36
- package/dist/esm/src/data/transformers/libero-replacement.js +4 -4
- package/dist/esm/src/data/transformers/rally.js +9 -9
- package/dist/esm/src/data/transformers/reception.js +12 -12
- package/dist/esm/src/data/transformers/serve.js +13 -13
- package/dist/esm/src/data/transformers/set.js +12 -12
- package/dist/esm/src/data/transformers/spike.js +14 -14
- package/dist/esm/src/index.d.ts +4 -6
- package/dist/esm/src/index.js +3 -4
- package/dist/esm/src/service/coach/formation.d.ts +6 -6
- package/dist/esm/src/service/coach/formation.js +1 -1
- package/dist/esm/src/service/coach/index.d.ts +2 -3
- package/dist/esm/src/service/coach/index.js +2 -3
- package/dist/esm/src/service/competition/index.d.ts +7 -8
- package/dist/esm/src/service/competition/index.js +7 -8
- package/dist/esm/src/service/country/index.d.ts +1 -2
- package/dist/esm/src/service/country/index.js +1 -2
- package/dist/esm/src/service/draft/index.d.ts +2 -3
- package/dist/esm/src/service/draft/index.js +2 -3
- package/dist/esm/src/service/event/__stubs__/index.js +8 -8
- package/dist/esm/src/service/event/block.d.ts +6 -6
- package/dist/esm/src/service/event/block.js +21 -21
- package/dist/esm/src/service/event/block.test.js +28 -28
- package/dist/esm/src/service/event/in-play-event.d.ts +3 -3
- package/dist/esm/src/service/event/index.d.ts +10 -11
- package/dist/esm/src/service/event/index.js +10 -11
- package/dist/esm/src/service/event/libero-replacement.d.ts +3 -3
- package/dist/esm/src/service/event/libero-replacement.js +7 -7
- package/dist/esm/src/service/event/libero-replacement.test.js +9 -9
- package/dist/esm/src/service/event/rally-event.d.ts +3 -3
- package/dist/esm/src/service/event/rally-event.js +11 -11
- package/dist/esm/src/service/event/reception.d.ts +7 -7
- package/dist/esm/src/service/event/reception.js +16 -16
- package/dist/esm/src/service/event/reception.test.js +16 -16
- package/dist/esm/src/service/event/score.test.js +3 -3
- package/dist/esm/src/service/event/serve.d.ts +7 -7
- package/dist/esm/src/service/event/serve.js +17 -17
- package/dist/esm/src/service/event/serve.test.js +16 -16
- package/dist/esm/src/service/event/set.d.ts +7 -7
- package/dist/esm/src/service/event/set.js +16 -16
- package/dist/esm/src/service/event/set.test.js +16 -16
- package/dist/esm/src/service/event/spike.d.ts +7 -7
- package/dist/esm/src/service/event/spike.js +19 -19
- package/dist/esm/src/service/event/spike.test.js +23 -23
- package/dist/esm/src/service/index.d.ts +9 -10
- package/dist/esm/src/service/index.js +9 -10
- package/dist/esm/src/service/match/{court-target.d.ts → court-target-enum.d.ts} +4 -4
- package/dist/esm/src/service/match/court-target-enum.js +39 -0
- package/dist/esm/src/service/match/court-target.test.js +18 -18
- package/dist/esm/src/service/match/index.d.ts +7 -8
- package/dist/esm/src/service/match/index.js +7 -8
- package/dist/esm/src/service/match/rally.js +2 -2
- package/dist/esm/src/service/match/rally.test.js +3 -3
- package/dist/esm/src/service/player/index.d.ts +5 -6
- package/dist/esm/src/service/player/index.js +5 -6
- package/dist/esm/src/service/player/role.d.ts +13 -11
- package/dist/esm/src/service/player/role.js +31 -20
- package/dist/esm/src/service/player/trait.js +12 -5
- package/dist/esm/src/service/team/index.d.ts +1 -2
- package/dist/esm/src/service/team/index.js +1 -2
- package/package.json +1 -1
- package/dist/cjs/src/service/match/court-target.js +0 -42
- package/dist/esm/src/service/match/court-target.js +0 -39
|
@@ -9,12 +9,12 @@ interface PositionRole {
|
|
|
9
9
|
readonly [CourtPosition.RIGHT_BACK]: Role[];
|
|
10
10
|
}
|
|
11
11
|
export interface SubPriority {
|
|
12
|
-
readonly
|
|
13
|
-
readonly
|
|
14
|
-
readonly
|
|
15
|
-
readonly
|
|
16
|
-
readonly
|
|
17
|
-
readonly
|
|
12
|
+
readonly 'Middle Blocker': number;
|
|
13
|
+
readonly 'Outside Hitter': number;
|
|
14
|
+
readonly 'Opposite Hitter': number;
|
|
15
|
+
readonly 'Defensive Specialist': number;
|
|
16
|
+
readonly Setter: number;
|
|
17
|
+
readonly Libero: number;
|
|
18
18
|
}
|
|
19
19
|
export declare class Formation {
|
|
20
20
|
static readonly '5-1': Formation;
|
|
@@ -1,3 +1,2 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
export { Coach, Formation, SubPriority };
|
|
1
|
+
export * from './coach';
|
|
2
|
+
export * from './formation';
|
|
@@ -1,3 +1,2 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
export { Coach, Formation };
|
|
1
|
+
export * from './coach';
|
|
2
|
+
export * from './formation';
|
|
@@ -1,8 +1,7 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
export { TournamentMatch, Stage, Tournament, Season, Standing, League, Iteration, };
|
|
1
|
+
export * from './standing';
|
|
2
|
+
export * from './season';
|
|
3
|
+
export * from './league';
|
|
4
|
+
export * from './iteration';
|
|
5
|
+
export * from './tournament';
|
|
6
|
+
export * from './tournament-match';
|
|
7
|
+
export * from './stage';
|
|
@@ -1,8 +1,7 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
export { TournamentMatch, Stage, Tournament, Season, Standing, League, Iteration, };
|
|
1
|
+
export * from './standing';
|
|
2
|
+
export * from './season';
|
|
3
|
+
export * from './league';
|
|
4
|
+
export * from './iteration';
|
|
5
|
+
export * from './tournament';
|
|
6
|
+
export * from './tournament-match';
|
|
7
|
+
export * from './stage';
|
|
@@ -1,2 +1 @@
|
|
|
1
|
-
|
|
2
|
-
export { Country };
|
|
1
|
+
export * from './country';
|
|
@@ -1,2 +1 @@
|
|
|
1
|
-
|
|
2
|
-
export { Country };
|
|
1
|
+
export * from './country';
|
|
@@ -1,3 +1,2 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
export { Draft, DraftPick };
|
|
1
|
+
export * from './draft';
|
|
2
|
+
export * from './draft-pick';
|
|
@@ -1,3 +1,2 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
export { Draft, DraftPick };
|
|
1
|
+
export * from './draft';
|
|
2
|
+
export * from './draft-pick';
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { Serve,
|
|
1
|
+
import { Serve, ServeFailureEnum, ServeTypeEnum } from '../serve';
|
|
2
2
|
import { player } from '../../player/__stubs__';
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
3
|
+
import { CourtTargetEnum } from '../../match';
|
|
4
|
+
import { EventTypeEnum } from '../rally-event';
|
|
5
5
|
import { Score } from '../score';
|
|
6
6
|
import { team } from '../../team/__stubs__';
|
|
7
7
|
export const serve = new Serve({
|
|
@@ -9,16 +9,16 @@ export const serve = new Serve({
|
|
|
9
9
|
order: 0,
|
|
10
10
|
id: 'e92f4abb-66f4-4b6c-a602-258404d04484',
|
|
11
11
|
player: player,
|
|
12
|
-
target:
|
|
13
|
-
eventType:
|
|
14
|
-
type:
|
|
15
|
-
failure:
|
|
12
|
+
target: CourtTargetEnum.OPPONENT_RIGHT_BACK,
|
|
13
|
+
eventType: EventTypeEnum.SERVE,
|
|
14
|
+
type: ServeTypeEnum.JUMP_FLOAT,
|
|
15
|
+
failure: ServeFailureEnum.NO_FAILURE,
|
|
16
16
|
modifier: 1
|
|
17
17
|
});
|
|
18
18
|
export const score = new Score({
|
|
19
19
|
id: 'e92f4abb-66f4-4b6c-a602-258404d04484',
|
|
20
20
|
order: 0,
|
|
21
|
-
eventType:
|
|
21
|
+
eventType: EventTypeEnum.SCORE,
|
|
22
22
|
player,
|
|
23
23
|
team
|
|
24
24
|
});
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { InPlayEvent, InPlayEventOpts } from './in-play-event';
|
|
2
2
|
import { Player } from '../player';
|
|
3
|
-
export declare enum
|
|
3
|
+
export declare enum BlockFailureEnum {
|
|
4
4
|
NO_FAILURE = 0,
|
|
5
5
|
FAULT = 1,
|
|
6
6
|
MISS = 2,
|
|
@@ -8,20 +8,20 @@ export declare enum BlockFailure {
|
|
|
8
8
|
WIPE = 4,
|
|
9
9
|
TOOL = 5
|
|
10
10
|
}
|
|
11
|
-
export declare enum
|
|
11
|
+
export declare enum BlockTypeEnum {
|
|
12
12
|
NO_BLOCKER = 0,
|
|
13
13
|
SINGLE = 1,
|
|
14
14
|
DOUBLE = 2,
|
|
15
15
|
TRIPLE = 3
|
|
16
16
|
}
|
|
17
17
|
interface BlockOpts extends InPlayEventOpts {
|
|
18
|
-
readonly type:
|
|
19
|
-
readonly failure:
|
|
18
|
+
readonly type: BlockTypeEnum;
|
|
19
|
+
readonly failure: BlockFailureEnum;
|
|
20
20
|
readonly blockers: Player[];
|
|
21
21
|
}
|
|
22
22
|
export declare class Block extends InPlayEvent {
|
|
23
|
-
readonly failure:
|
|
24
|
-
readonly type:
|
|
23
|
+
readonly failure: BlockFailureEnum;
|
|
24
|
+
readonly type: BlockTypeEnum;
|
|
25
25
|
readonly blockers: Player[];
|
|
26
26
|
constructor({ id, order, score, player, target, failure, type, modifier, eventType, blockers }: BlockOpts);
|
|
27
27
|
static getScore(blockers: Player[], modifier: number): number;
|
|
@@ -1,20 +1,20 @@
|
|
|
1
1
|
import { InPlayEvent } from './in-play-event';
|
|
2
|
-
export var
|
|
3
|
-
(function (
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
})(
|
|
11
|
-
export var
|
|
12
|
-
(function (
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
})(
|
|
2
|
+
export var BlockFailureEnum;
|
|
3
|
+
(function (BlockFailureEnum) {
|
|
4
|
+
BlockFailureEnum[BlockFailureEnum["NO_FAILURE"] = 0] = "NO_FAILURE";
|
|
5
|
+
BlockFailureEnum[BlockFailureEnum["FAULT"] = 1] = "FAULT";
|
|
6
|
+
BlockFailureEnum[BlockFailureEnum["MISS"] = 2] = "MISS";
|
|
7
|
+
BlockFailureEnum[BlockFailureEnum["OUT_OF_BOUNDS"] = 3] = "OUT_OF_BOUNDS";
|
|
8
|
+
BlockFailureEnum[BlockFailureEnum["WIPE"] = 4] = "WIPE";
|
|
9
|
+
BlockFailureEnum[BlockFailureEnum["TOOL"] = 5] = "TOOL";
|
|
10
|
+
})(BlockFailureEnum || (BlockFailureEnum = {}));
|
|
11
|
+
export var BlockTypeEnum;
|
|
12
|
+
(function (BlockTypeEnum) {
|
|
13
|
+
BlockTypeEnum[BlockTypeEnum["NO_BLOCKER"] = 0] = "NO_BLOCKER";
|
|
14
|
+
BlockTypeEnum[BlockTypeEnum["SINGLE"] = 1] = "SINGLE";
|
|
15
|
+
BlockTypeEnum[BlockTypeEnum["DOUBLE"] = 2] = "DOUBLE";
|
|
16
|
+
BlockTypeEnum[BlockTypeEnum["TRIPLE"] = 3] = "TRIPLE";
|
|
17
|
+
})(BlockTypeEnum || (BlockTypeEnum = {}));
|
|
18
18
|
export class Block extends InPlayEvent {
|
|
19
19
|
constructor({ id, order, score, player, target, failure, type, modifier, eventType, blockers }) {
|
|
20
20
|
super({ id, order, score, player, target, modifier, eventType });
|
|
@@ -28,22 +28,22 @@ export class Block extends InPlayEvent {
|
|
|
28
28
|
throw new Error('UNKNOWN_TYPE');
|
|
29
29
|
let bmod;
|
|
30
30
|
switch (type) {
|
|
31
|
-
case
|
|
31
|
+
case BlockTypeEnum.NO_BLOCKER:
|
|
32
32
|
return 0;
|
|
33
|
-
case
|
|
33
|
+
case BlockTypeEnum.SINGLE:
|
|
34
34
|
bmod = 1;
|
|
35
35
|
break;
|
|
36
|
-
case
|
|
36
|
+
case BlockTypeEnum.DOUBLE:
|
|
37
37
|
bmod = 1.2;
|
|
38
38
|
break;
|
|
39
|
-
case
|
|
39
|
+
case BlockTypeEnum.TRIPLE:
|
|
40
40
|
bmod = 1.4;
|
|
41
41
|
break;
|
|
42
42
|
default:
|
|
43
43
|
throw new Error('UNKNOWN_TYPE');
|
|
44
44
|
}
|
|
45
45
|
const total = blockers.reduce((score, player) => {
|
|
46
|
-
return score + Block.calculateScore(player.stats, 'BLOCK',
|
|
46
|
+
return score + Block.calculateScore(player.stats, 'BLOCK', BlockTypeEnum[type]);
|
|
47
47
|
}, 0);
|
|
48
48
|
const avg = total / blockers.length;
|
|
49
49
|
return avg * bmod * modifier;
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { describe, expect, test } from '@jest/globals';
|
|
2
|
-
import { Block,
|
|
2
|
+
import { Block, BlockFailureEnum, BlockTypeEnum } from './block';
|
|
3
3
|
import { player } from '../player/__stubs__';
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
4
|
+
import { CourtTargetEnum } from '../match';
|
|
5
|
+
import { EventTypeEnum } from './rally-event';
|
|
6
6
|
import { v4 as uuidv4 } from 'uuid';
|
|
7
7
|
describe('Block Test Module', () => {
|
|
8
8
|
let none;
|
|
@@ -15,10 +15,10 @@ describe('Block Test Module', () => {
|
|
|
15
15
|
id: uuidv4(),
|
|
16
16
|
order: 1,
|
|
17
17
|
player: player,
|
|
18
|
-
target:
|
|
19
|
-
failure:
|
|
20
|
-
type:
|
|
21
|
-
eventType:
|
|
18
|
+
target: CourtTargetEnum.OPPONENT_RIGHT_BACK,
|
|
19
|
+
failure: BlockFailureEnum.NO_FAILURE,
|
|
20
|
+
type: BlockTypeEnum.NO_BLOCKER,
|
|
21
|
+
eventType: EventTypeEnum.BLOCK,
|
|
22
22
|
modifier: 1,
|
|
23
23
|
blockers: [],
|
|
24
24
|
score: Block.getScore([], 1)
|
|
@@ -27,10 +27,10 @@ describe('Block Test Module', () => {
|
|
|
27
27
|
id: uuidv4(),
|
|
28
28
|
order: 1,
|
|
29
29
|
player: player,
|
|
30
|
-
target:
|
|
31
|
-
failure:
|
|
32
|
-
type:
|
|
33
|
-
eventType:
|
|
30
|
+
target: CourtTargetEnum.OPPONENT_RIGHT_BACK,
|
|
31
|
+
failure: BlockFailureEnum.NO_FAILURE,
|
|
32
|
+
type: BlockTypeEnum.SINGLE,
|
|
33
|
+
eventType: EventTypeEnum.BLOCK,
|
|
34
34
|
modifier: 1,
|
|
35
35
|
blockers: [player],
|
|
36
36
|
score: Block.getScore([player], 1)
|
|
@@ -39,10 +39,10 @@ describe('Block Test Module', () => {
|
|
|
39
39
|
id: uuidv4(),
|
|
40
40
|
order: 1,
|
|
41
41
|
player: player,
|
|
42
|
-
target:
|
|
43
|
-
failure:
|
|
44
|
-
type:
|
|
45
|
-
eventType:
|
|
42
|
+
target: CourtTargetEnum.OPPONENT_RIGHT_BACK,
|
|
43
|
+
failure: BlockFailureEnum.NO_FAILURE,
|
|
44
|
+
type: BlockTypeEnum.DOUBLE,
|
|
45
|
+
eventType: EventTypeEnum.BLOCK,
|
|
46
46
|
modifier: 1,
|
|
47
47
|
blockers: [player, player],
|
|
48
48
|
score: Block.getScore([player, player], 1)
|
|
@@ -51,10 +51,10 @@ describe('Block Test Module', () => {
|
|
|
51
51
|
id: uuidv4(),
|
|
52
52
|
order: 1,
|
|
53
53
|
player: player,
|
|
54
|
-
target:
|
|
55
|
-
failure:
|
|
56
|
-
type:
|
|
57
|
-
eventType:
|
|
54
|
+
target: CourtTargetEnum.OPPONENT_RIGHT_BACK,
|
|
55
|
+
failure: BlockFailureEnum.NO_FAILURE,
|
|
56
|
+
type: BlockTypeEnum.TRIPLE,
|
|
57
|
+
eventType: EventTypeEnum.BLOCK,
|
|
58
58
|
modifier: 1,
|
|
59
59
|
blockers: [player, player, player],
|
|
60
60
|
score: Block.getScore([player, player, player], 1)
|
|
@@ -63,22 +63,22 @@ describe('Block Test Module', () => {
|
|
|
63
63
|
id: uuidv4(),
|
|
64
64
|
order: 1,
|
|
65
65
|
player: player,
|
|
66
|
-
target:
|
|
67
|
-
failure:
|
|
68
|
-
type:
|
|
69
|
-
eventType:
|
|
66
|
+
target: CourtTargetEnum.NO_TARGET,
|
|
67
|
+
failure: BlockFailureEnum.FAULT,
|
|
68
|
+
type: BlockTypeEnum.TRIPLE,
|
|
69
|
+
eventType: EventTypeEnum.BLOCK,
|
|
70
70
|
modifier: 1,
|
|
71
71
|
blockers: [player],
|
|
72
72
|
score: Block.getScore([player], 1)
|
|
73
73
|
});
|
|
74
74
|
});
|
|
75
75
|
test('Should instantiate object properly', () => {
|
|
76
|
-
expect(block.target).toBe(
|
|
77
|
-
expect(block.type).toBe(
|
|
78
|
-
expect(block.eventType).toBe(
|
|
76
|
+
expect(block.target).toBe(CourtTargetEnum.OPPONENT_RIGHT_BACK);
|
|
77
|
+
expect(block.type).toBe(BlockTypeEnum.SINGLE);
|
|
78
|
+
expect(block.eventType).toBe(EventTypeEnum.BLOCK);
|
|
79
79
|
expect(block.player.id).toBe(player.id);
|
|
80
|
-
expect(block.failure).toBe(
|
|
81
|
-
expect(failed.failure).toBe(
|
|
80
|
+
expect(block.failure).toBe(BlockFailureEnum.NO_FAILURE);
|
|
81
|
+
expect(failed.failure).toBe(BlockFailureEnum.FAULT);
|
|
82
82
|
expect(block.modifier).toBe(1);
|
|
83
83
|
});
|
|
84
84
|
// getScore Tests
|
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
import { RallyEvent, RallyEventOpts } from './rally-event';
|
|
2
|
-
import {
|
|
2
|
+
import { CourtTargetEnum } from '../match';
|
|
3
3
|
import { PerformanceStats } from '../player';
|
|
4
4
|
export interface InPlayEventOpts extends RallyEventOpts {
|
|
5
|
-
readonly target:
|
|
5
|
+
readonly target: CourtTargetEnum;
|
|
6
6
|
readonly modifier: number;
|
|
7
7
|
readonly score: number;
|
|
8
8
|
}
|
|
9
9
|
export declare abstract class InPlayEvent extends RallyEvent {
|
|
10
10
|
abstract failure: number;
|
|
11
11
|
abstract type: number;
|
|
12
|
-
readonly target:
|
|
12
|
+
readonly target: CourtTargetEnum;
|
|
13
13
|
readonly modifier: number;
|
|
14
14
|
readonly score: number;
|
|
15
15
|
protected constructor(opts: InPlayEventOpts);
|
|
@@ -1,11 +1,10 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
export { Spike, SpikeFailure, SpikeType, ServeType, Set, SetFailure, SetType, ReceptionFailure, ReceptionType, BlockFailure, BlockType, Block, ServeFailure, Serve, EventType, RallyEvent, RallyEventOpts, InPlayEventOpts, InPlayEvent, Reception, Substitution, LiberoReplacementType, LiberoReplacement, Score };
|
|
1
|
+
export * from './score';
|
|
2
|
+
export * from './set';
|
|
3
|
+
export * from './block';
|
|
4
|
+
export * from './serve';
|
|
5
|
+
export * from './in-play-event';
|
|
6
|
+
export * from './rally-event';
|
|
7
|
+
export * from './reception';
|
|
8
|
+
export * from './spike';
|
|
9
|
+
export * from './substitution';
|
|
10
|
+
export * from './libero-replacement';
|
|
@@ -1,11 +1,10 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
export { Spike, SpikeFailure, SpikeType, ServeType, Set, SetFailure, SetType, ReceptionFailure, ReceptionType, BlockFailure, BlockType, Block, ServeFailure, Serve, EventType, RallyEvent, InPlayEvent, Reception, Substitution, LiberoReplacementType, LiberoReplacement, Score };
|
|
1
|
+
export * from './score';
|
|
2
|
+
export * from './set';
|
|
3
|
+
export * from './block';
|
|
4
|
+
export * from './serve';
|
|
5
|
+
export * from './in-play-event';
|
|
6
|
+
export * from './rally-event';
|
|
7
|
+
export * from './reception';
|
|
8
|
+
export * from './spike';
|
|
9
|
+
export * from './substitution';
|
|
10
|
+
export * from './libero-replacement';
|
|
@@ -3,14 +3,14 @@ import { Player } from '../player';
|
|
|
3
3
|
interface LiberoReplacementOpts extends RallyEventOpts {
|
|
4
4
|
readonly player: Player;
|
|
5
5
|
readonly libero: Player;
|
|
6
|
-
readonly type:
|
|
6
|
+
readonly type: LiberoReplacementTypeEnum;
|
|
7
7
|
}
|
|
8
|
-
export declare enum
|
|
8
|
+
export declare enum LiberoReplacementTypeEnum {
|
|
9
9
|
LIBERO_IN = 0,
|
|
10
10
|
LIBERO_OUT = 1
|
|
11
11
|
}
|
|
12
12
|
export declare class LiberoReplacement extends RallyEvent {
|
|
13
|
-
readonly type:
|
|
13
|
+
readonly type: LiberoReplacementTypeEnum;
|
|
14
14
|
readonly libero: Player;
|
|
15
15
|
constructor({ id, order, player, type, libero }: LiberoReplacementOpts);
|
|
16
16
|
}
|
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
import {
|
|
2
|
-
export var
|
|
3
|
-
(function (
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
})(
|
|
1
|
+
import { EventTypeEnum, RallyEvent } from './rally-event';
|
|
2
|
+
export var LiberoReplacementTypeEnum;
|
|
3
|
+
(function (LiberoReplacementTypeEnum) {
|
|
4
|
+
LiberoReplacementTypeEnum[LiberoReplacementTypeEnum["LIBERO_IN"] = 0] = "LIBERO_IN";
|
|
5
|
+
LiberoReplacementTypeEnum[LiberoReplacementTypeEnum["LIBERO_OUT"] = 1] = "LIBERO_OUT";
|
|
6
|
+
})(LiberoReplacementTypeEnum || (LiberoReplacementTypeEnum = {}));
|
|
7
7
|
export class LiberoReplacement extends RallyEvent {
|
|
8
8
|
constructor({ id, order, player, type, libero }) {
|
|
9
|
-
super({ id, order, player, eventType:
|
|
9
|
+
super({ id, order, player, eventType: EventTypeEnum.LIBERO_REPLACEMENT });
|
|
10
10
|
this.type = type;
|
|
11
11
|
this.libero = libero;
|
|
12
12
|
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { beforeEach, describe, expect, test } from '@jest/globals';
|
|
2
|
-
import {
|
|
2
|
+
import { EventTypeEnum } from './rally-event';
|
|
3
3
|
import { players } from '../player/__stubs__';
|
|
4
|
-
import { LiberoReplacement,
|
|
4
|
+
import { LiberoReplacement, LiberoReplacementTypeEnum } from './libero-replacement';
|
|
5
5
|
import { v4 as uuidv4 } from 'uuid';
|
|
6
6
|
describe('LiberoReplacement Test Module', () => {
|
|
7
7
|
let _in;
|
|
@@ -12,23 +12,23 @@ describe('LiberoReplacement Test Module', () => {
|
|
|
12
12
|
order: 1,
|
|
13
13
|
player: players[0],
|
|
14
14
|
libero: players[1],
|
|
15
|
-
type:
|
|
16
|
-
eventType:
|
|
15
|
+
type: LiberoReplacementTypeEnum.LIBERO_IN,
|
|
16
|
+
eventType: EventTypeEnum.LIBERO_REPLACEMENT
|
|
17
17
|
});
|
|
18
18
|
_out = new LiberoReplacement({
|
|
19
19
|
id: uuidv4(),
|
|
20
20
|
order: 1,
|
|
21
21
|
player: players[0],
|
|
22
22
|
libero: players[1],
|
|
23
|
-
type:
|
|
24
|
-
eventType:
|
|
23
|
+
type: LiberoReplacementTypeEnum.LIBERO_OUT,
|
|
24
|
+
eventType: EventTypeEnum.LIBERO_REPLACEMENT
|
|
25
25
|
});
|
|
26
26
|
});
|
|
27
27
|
test('Should instantiate object properly', () => {
|
|
28
28
|
expect(_in.libero.id).toBe('e92f4abb-66f4-4b6c-a602-258404d04484');
|
|
29
29
|
expect(_in.player.id).toBe('622c36dc-f2d2-44b3-a744-667ea53218b7');
|
|
30
|
-
expect(_in.type).toBe(
|
|
31
|
-
expect(_out.type).toBe(
|
|
32
|
-
expect(_in.eventType).toBe(
|
|
30
|
+
expect(_in.type).toBe(LiberoReplacementTypeEnum.LIBERO_IN);
|
|
31
|
+
expect(_out.type).toBe(LiberoReplacementTypeEnum.LIBERO_OUT);
|
|
32
|
+
expect(_in.eventType).toBe(EventTypeEnum.LIBERO_REPLACEMENT);
|
|
33
33
|
});
|
|
34
34
|
});
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Player } from '../player';
|
|
2
|
-
export declare enum
|
|
2
|
+
export declare enum EventTypeEnum {
|
|
3
3
|
LIBERO_REPLACEMENT = 0,
|
|
4
4
|
SUBSTITUTION = 1,
|
|
5
5
|
SERVE = 2,
|
|
@@ -12,13 +12,13 @@ export declare enum EventType {
|
|
|
12
12
|
export interface RallyEventOpts {
|
|
13
13
|
readonly id: string;
|
|
14
14
|
readonly player: Player;
|
|
15
|
-
readonly eventType:
|
|
15
|
+
readonly eventType: EventTypeEnum;
|
|
16
16
|
readonly order: number;
|
|
17
17
|
}
|
|
18
18
|
export declare abstract class RallyEvent {
|
|
19
19
|
readonly id: string;
|
|
20
20
|
readonly order: number;
|
|
21
21
|
readonly player: Player;
|
|
22
|
-
readonly eventType:
|
|
22
|
+
readonly eventType: EventTypeEnum;
|
|
23
23
|
protected constructor({ id, eventType, player, order }: RallyEventOpts);
|
|
24
24
|
}
|
|
@@ -1,14 +1,14 @@
|
|
|
1
|
-
export var
|
|
2
|
-
(function (
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
})(
|
|
1
|
+
export var EventTypeEnum;
|
|
2
|
+
(function (EventTypeEnum) {
|
|
3
|
+
EventTypeEnum[EventTypeEnum["LIBERO_REPLACEMENT"] = 0] = "LIBERO_REPLACEMENT";
|
|
4
|
+
EventTypeEnum[EventTypeEnum["SUBSTITUTION"] = 1] = "SUBSTITUTION";
|
|
5
|
+
EventTypeEnum[EventTypeEnum["SERVE"] = 2] = "SERVE";
|
|
6
|
+
EventTypeEnum[EventTypeEnum["RECEPTION"] = 3] = "RECEPTION";
|
|
7
|
+
EventTypeEnum[EventTypeEnum["SET"] = 4] = "SET";
|
|
8
|
+
EventTypeEnum[EventTypeEnum["SPIKE"] = 5] = "SPIKE";
|
|
9
|
+
EventTypeEnum[EventTypeEnum["BLOCK"] = 6] = "BLOCK";
|
|
10
|
+
EventTypeEnum[EventTypeEnum["SCORE"] = 7] = "SCORE";
|
|
11
|
+
})(EventTypeEnum || (EventTypeEnum = {}));
|
|
12
12
|
export class RallyEvent {
|
|
13
13
|
constructor({ id, eventType, player, order }) {
|
|
14
14
|
this.id = id;
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import { PerformanceStats } from '../player';
|
|
2
2
|
import { InPlayEvent, InPlayEventOpts } from './in-play-event';
|
|
3
|
-
export declare enum
|
|
3
|
+
export declare enum ReceptionTypeEnum {
|
|
4
4
|
DIG = 0,
|
|
5
5
|
OVERHAND = 1,
|
|
6
6
|
ONE_HAND = 2,
|
|
7
7
|
OTHER_BODY_PART = 3
|
|
8
8
|
}
|
|
9
|
-
export declare enum
|
|
9
|
+
export declare enum ReceptionFailureEnum {
|
|
10
10
|
NO_FAILURE = 0,
|
|
11
11
|
FAULT = 1,
|
|
12
12
|
MISS = 2,
|
|
@@ -14,13 +14,13 @@ export declare enum ReceptionFailure {
|
|
|
14
14
|
BAD_PASS = 4
|
|
15
15
|
}
|
|
16
16
|
interface ReceptionOpts extends InPlayEventOpts {
|
|
17
|
-
readonly type:
|
|
18
|
-
readonly failure:
|
|
17
|
+
readonly type: ReceptionTypeEnum;
|
|
18
|
+
readonly failure: ReceptionFailureEnum;
|
|
19
19
|
}
|
|
20
20
|
export declare class Reception extends InPlayEvent {
|
|
21
|
-
readonly failure:
|
|
22
|
-
readonly type:
|
|
21
|
+
readonly failure: ReceptionFailureEnum;
|
|
22
|
+
readonly type: ReceptionTypeEnum;
|
|
23
23
|
constructor({ id, order, score, player, target, failure, type, eventType, modifier }: ReceptionOpts);
|
|
24
|
-
static getScore(stats: PerformanceStats, type:
|
|
24
|
+
static getScore(stats: PerformanceStats, type: ReceptionTypeEnum, modifier: number): number;
|
|
25
25
|
}
|
|
26
26
|
export {};
|
|
@@ -1,19 +1,19 @@
|
|
|
1
1
|
import { InPlayEvent } from './in-play-event';
|
|
2
|
-
export var
|
|
3
|
-
(function (
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
})(
|
|
9
|
-
export var
|
|
10
|
-
(function (
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
})(
|
|
2
|
+
export var ReceptionTypeEnum;
|
|
3
|
+
(function (ReceptionTypeEnum) {
|
|
4
|
+
ReceptionTypeEnum[ReceptionTypeEnum["DIG"] = 0] = "DIG";
|
|
5
|
+
ReceptionTypeEnum[ReceptionTypeEnum["OVERHAND"] = 1] = "OVERHAND";
|
|
6
|
+
ReceptionTypeEnum[ReceptionTypeEnum["ONE_HAND"] = 2] = "ONE_HAND";
|
|
7
|
+
ReceptionTypeEnum[ReceptionTypeEnum["OTHER_BODY_PART"] = 3] = "OTHER_BODY_PART";
|
|
8
|
+
})(ReceptionTypeEnum || (ReceptionTypeEnum = {}));
|
|
9
|
+
export var ReceptionFailureEnum;
|
|
10
|
+
(function (ReceptionFailureEnum) {
|
|
11
|
+
ReceptionFailureEnum[ReceptionFailureEnum["NO_FAILURE"] = 0] = "NO_FAILURE";
|
|
12
|
+
ReceptionFailureEnum[ReceptionFailureEnum["FAULT"] = 1] = "FAULT";
|
|
13
|
+
ReceptionFailureEnum[ReceptionFailureEnum["MISS"] = 2] = "MISS";
|
|
14
|
+
ReceptionFailureEnum[ReceptionFailureEnum["OUT_OF_BOUNDS"] = 3] = "OUT_OF_BOUNDS";
|
|
15
|
+
ReceptionFailureEnum[ReceptionFailureEnum["BAD_PASS"] = 4] = "BAD_PASS";
|
|
16
|
+
})(ReceptionFailureEnum || (ReceptionFailureEnum = {}));
|
|
17
17
|
export class Reception extends InPlayEvent {
|
|
18
18
|
constructor({ id, order, score, player, target, failure, type, eventType, modifier }) {
|
|
19
19
|
super({ id, order, score, player, target, eventType, modifier });
|
|
@@ -21,6 +21,6 @@ export class Reception extends InPlayEvent {
|
|
|
21
21
|
this.failure = failure;
|
|
22
22
|
}
|
|
23
23
|
static getScore(stats, type, modifier) {
|
|
24
|
-
return Reception.calculateScore(stats, 'RECEPTION',
|
|
24
|
+
return Reception.calculateScore(stats, 'RECEPTION', ReceptionTypeEnum[type]) * modifier;
|
|
25
25
|
}
|
|
26
26
|
}
|