volleyballsimtypes 0.0.122 → 0.0.124
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 +0 -1
- package/dist/cjs/src/data/init-models.d.ts +1 -35
- package/dist/cjs/src/data/init-models.js +0 -57
- package/dist/cjs/src/data/models/coach.js +2 -2
- package/dist/cjs/src/data/models/index.d.ts +0 -8
- package/dist/cjs/src/data/models/index.js +0 -8
- package/dist/cjs/src/data/models/player-team.d.ts +1 -2
- package/dist/cjs/src/data/models/player.d.ts +1 -144
- package/dist/cjs/src/data/models/rally.d.ts +3 -96
- package/dist/cjs/src/data/models/rally.js +4 -0
- package/dist/cjs/src/data/transformers/block.d.ts +2 -6
- package/dist/cjs/src/data/transformers/block.js +8 -95
- package/dist/cjs/src/data/transformers/coach.js +2 -2
- package/dist/cjs/src/data/transformers/draft.js +3 -2
- package/dist/cjs/src/data/transformers/index.d.ts +0 -2
- package/dist/cjs/src/data/transformers/index.js +0 -2
- package/dist/cjs/src/data/transformers/league.js +6 -4
- package/dist/cjs/src/data/transformers/libero-replacement.d.ts +2 -6
- package/dist/cjs/src/data/transformers/libero-replacement.js +4 -43
- package/dist/cjs/src/data/transformers/match-set-stats.js +1 -1
- package/dist/cjs/src/data/transformers/match-set.js +20 -11
- package/dist/cjs/src/data/transformers/match.js +7 -5
- package/dist/cjs/src/data/transformers/player.js +6 -4
- package/dist/cjs/src/data/transformers/rally.js +92 -32
- package/dist/cjs/src/data/transformers/reception.d.ts +2 -6
- package/dist/cjs/src/data/transformers/reception.js +6 -73
- package/dist/cjs/src/data/transformers/season.js +41 -30
- package/dist/cjs/src/data/transformers/serve.d.ts +2 -6
- package/dist/cjs/src/data/transformers/serve.js +6 -75
- package/dist/cjs/src/data/transformers/set.d.ts +2 -6
- package/dist/cjs/src/data/transformers/set.js +6 -73
- package/dist/cjs/src/data/transformers/spike.d.ts +2 -6
- package/dist/cjs/src/data/transformers/spike.js +7 -78
- package/dist/cjs/src/data/transformers/substitution.d.ts +2 -6
- package/dist/cjs/src/data/transformers/substitution.js +4 -28
- package/dist/cjs/src/data/transformers/team.js +4 -3
- package/dist/cjs/src/data/transformers/tournament.js +6 -4
- package/dist/cjs/src/data/transformers/trait.js +5 -1
- package/dist/cjs/src/service/coach/coach.d.ts +2 -2
- package/dist/cjs/src/service/event/block.d.ts +3 -2
- package/dist/cjs/src/service/event/block.js +6 -3
- package/dist/cjs/src/service/event/in-play-event.d.ts +2 -2
- package/dist/cjs/src/service/event/in-play-event.js +3 -3
- package/dist/cjs/src/service/event/libero-replacement.d.ts +3 -2
- package/dist/cjs/src/service/event/libero-replacement.js +6 -3
- package/dist/cjs/src/service/event/rally-event.d.ts +2 -4
- package/dist/cjs/src/service/event/rally-event.js +2 -3
- package/dist/cjs/src/service/event/reception.d.ts +2 -1
- package/dist/cjs/src/service/event/reception.js +5 -2
- package/dist/cjs/src/service/event/serve.d.ts +2 -1
- package/dist/cjs/src/service/event/serve.js +6 -9
- package/dist/cjs/src/service/event/set.d.ts +2 -1
- package/dist/cjs/src/service/event/set.js +5 -2
- package/dist/cjs/src/service/event/spike.d.ts +2 -1
- package/dist/cjs/src/service/event/spike.js +5 -2
- package/dist/cjs/src/service/event/substitution.d.ts +3 -2
- package/dist/cjs/src/service/event/substitution.js +6 -3
- package/dist/cjs/src/service/team/team.d.ts +6 -6
- package/dist/cjs/src/service/team/team.js +3 -0
- package/dist/esm/src/api/events.d.ts +0 -1
- package/dist/esm/src/data/init-models.d.ts +1 -35
- package/dist/esm/src/data/init-models.js +1 -58
- package/dist/esm/src/data/models/coach.js +2 -2
- package/dist/esm/src/data/models/index.d.ts +0 -8
- package/dist/esm/src/data/models/index.js +0 -8
- package/dist/esm/src/data/models/player-team.d.ts +1 -2
- package/dist/esm/src/data/models/player.d.ts +1 -144
- package/dist/esm/src/data/models/rally.d.ts +3 -96
- package/dist/esm/src/data/models/rally.js +4 -0
- package/dist/esm/src/data/transformers/block.d.ts +2 -6
- package/dist/esm/src/data/transformers/block.js +8 -93
- package/dist/esm/src/data/transformers/coach.js +2 -2
- package/dist/esm/src/data/transformers/draft.js +3 -2
- package/dist/esm/src/data/transformers/index.d.ts +0 -2
- package/dist/esm/src/data/transformers/index.js +0 -2
- package/dist/esm/src/data/transformers/league.js +6 -4
- package/dist/esm/src/data/transformers/libero-replacement.d.ts +2 -6
- package/dist/esm/src/data/transformers/libero-replacement.js +4 -41
- package/dist/esm/src/data/transformers/match-set-stats.js +1 -1
- package/dist/esm/src/data/transformers/match-set.js +20 -11
- package/dist/esm/src/data/transformers/match.js +7 -5
- package/dist/esm/src/data/transformers/player.js +6 -4
- package/dist/esm/src/data/transformers/rally.js +93 -33
- package/dist/esm/src/data/transformers/reception.d.ts +2 -6
- package/dist/esm/src/data/transformers/reception.js +6 -71
- package/dist/esm/src/data/transformers/season.js +41 -30
- package/dist/esm/src/data/transformers/serve.d.ts +2 -6
- package/dist/esm/src/data/transformers/serve.js +6 -73
- package/dist/esm/src/data/transformers/set.d.ts +2 -6
- package/dist/esm/src/data/transformers/set.js +6 -71
- package/dist/esm/src/data/transformers/spike.d.ts +2 -6
- package/dist/esm/src/data/transformers/spike.js +7 -76
- package/dist/esm/src/data/transformers/substitution.d.ts +2 -6
- package/dist/esm/src/data/transformers/substitution.js +4 -26
- package/dist/esm/src/data/transformers/team.js +5 -4
- package/dist/esm/src/data/transformers/tournament.js +6 -4
- package/dist/esm/src/data/transformers/trait.js +5 -1
- package/dist/esm/src/service/coach/coach.d.ts +2 -2
- package/dist/esm/src/service/event/block.d.ts +3 -2
- package/dist/esm/src/service/event/block.js +6 -3
- package/dist/esm/src/service/event/in-play-event.d.ts +2 -2
- package/dist/esm/src/service/event/in-play-event.js +3 -3
- package/dist/esm/src/service/event/libero-replacement.d.ts +3 -2
- package/dist/esm/src/service/event/libero-replacement.js +6 -3
- package/dist/esm/src/service/event/rally-event.d.ts +2 -4
- package/dist/esm/src/service/event/rally-event.js +2 -3
- package/dist/esm/src/service/event/reception.d.ts +2 -1
- package/dist/esm/src/service/event/reception.js +5 -2
- package/dist/esm/src/service/event/serve.d.ts +2 -1
- package/dist/esm/src/service/event/serve.js +6 -9
- package/dist/esm/src/service/event/set.d.ts +2 -1
- package/dist/esm/src/service/event/set.js +5 -2
- package/dist/esm/src/service/event/spike.d.ts +2 -1
- package/dist/esm/src/service/event/spike.js +5 -2
- package/dist/esm/src/service/event/substitution.d.ts +3 -2
- package/dist/esm/src/service/event/substitution.js +6 -3
- package/dist/esm/src/service/team/team.d.ts +6 -6
- package/dist/esm/src/service/team/team.js +3 -0
- package/package.json +4 -3
- package/dist/cjs/src/data/models/block.d.ts +0 -56
- package/dist/cjs/src/data/models/block.js +0 -86
- package/dist/cjs/src/data/models/event.d.ts +0 -31
- package/dist/cjs/src/data/models/event.js +0 -50
- package/dist/cjs/src/data/models/libero-replacement.d.ts +0 -38
- package/dist/cjs/src/data/models/libero-replacement.js +0 -62
- package/dist/cjs/src/data/models/reception.d.ts +0 -37
- package/dist/cjs/src/data/models/reception.js +0 -62
- package/dist/cjs/src/data/models/serve.d.ts +0 -37
- package/dist/cjs/src/data/models/serve.js +0 -62
- package/dist/cjs/src/data/models/set.d.ts +0 -37
- package/dist/cjs/src/data/models/set.js +0 -62
- package/dist/cjs/src/data/models/spike.d.ts +0 -37
- package/dist/cjs/src/data/models/spike.js +0 -62
- package/dist/cjs/src/data/models/substitution.d.ts +0 -35
- package/dist/cjs/src/data/models/substitution.js +0 -58
- package/dist/cjs/src/data/transformers/court-target.d.ts +0 -5
- package/dist/cjs/src/data/transformers/court-target.js +0 -41
- package/dist/cjs/src/data/transformers/event-type.d.ts +0 -5
- package/dist/cjs/src/data/transformers/event-type.js +0 -29
- package/dist/esm/src/data/models/block.d.ts +0 -56
- package/dist/esm/src/data/models/block.js +0 -82
- package/dist/esm/src/data/models/event.d.ts +0 -31
- package/dist/esm/src/data/models/event.js +0 -46
- package/dist/esm/src/data/models/libero-replacement.d.ts +0 -38
- package/dist/esm/src/data/models/libero-replacement.js +0 -58
- package/dist/esm/src/data/models/reception.d.ts +0 -37
- package/dist/esm/src/data/models/reception.js +0 -58
- package/dist/esm/src/data/models/serve.d.ts +0 -37
- package/dist/esm/src/data/models/serve.js +0 -58
- package/dist/esm/src/data/models/set.d.ts +0 -37
- package/dist/esm/src/data/models/set.js +0 -58
- package/dist/esm/src/data/models/spike.d.ts +0 -37
- package/dist/esm/src/data/models/spike.js +0 -58
- package/dist/esm/src/data/models/substitution.d.ts +0 -35
- package/dist/esm/src/data/models/substitution.js +0 -54
- package/dist/esm/src/data/transformers/court-target.d.ts +0 -5
- package/dist/esm/src/data/transformers/court-target.js +0 -37
- package/dist/esm/src/data/transformers/event-type.d.ts +0 -5
- package/dist/esm/src/data/transformers/event-type.js +0 -25
|
@@ -1,80 +1,11 @@
|
|
|
1
|
-
import { Spike, SpikeFailureEnum, SpikeTypeEnum } from '../../service';
|
|
2
|
-
import { transformFromCourtTarget, transformFromEventType, transformToCourtTarget, transformToEventType, transformToPlayer } from '.';
|
|
3
|
-
function transformToSpikeFailure(failure) {
|
|
4
|
-
switch (failure) {
|
|
5
|
-
case SpikeFailureEnum.NO_FAILURE:
|
|
6
|
-
return 'NO_FAILURE';
|
|
7
|
-
case SpikeFailureEnum.FAULT:
|
|
8
|
-
return 'FAULT';
|
|
9
|
-
case SpikeFailureEnum.MISS:
|
|
10
|
-
return 'MISS';
|
|
11
|
-
case SpikeFailureEnum.OUT_OF_BOUNDS:
|
|
12
|
-
return 'OUT_OF_BOUNDS';
|
|
13
|
-
case SpikeFailureEnum.NET:
|
|
14
|
-
return 'NET';
|
|
15
|
-
default:
|
|
16
|
-
throw new Error('UNKNOWN_ROLE');
|
|
17
|
-
}
|
|
18
|
-
}
|
|
19
|
-
function transformFromSpikeFailure(failure) {
|
|
20
|
-
return SpikeFailureEnum[failure];
|
|
21
|
-
}
|
|
22
|
-
function transformToSpikeType(type) {
|
|
23
|
-
switch (type) {
|
|
24
|
-
case SpikeTypeEnum.CROSS_SHOT:
|
|
25
|
-
return 'CROSS_SHOT';
|
|
26
|
-
case SpikeTypeEnum.LINE_SHOT:
|
|
27
|
-
return 'LINE_SHOT';
|
|
28
|
-
case SpikeTypeEnum.TOOL_SHOT:
|
|
29
|
-
return 'TOOL_SHOT';
|
|
30
|
-
case SpikeTypeEnum.TIP:
|
|
31
|
-
return 'TIP';
|
|
32
|
-
case SpikeTypeEnum.DOWN_BALL:
|
|
33
|
-
return 'DOWN_BALL';
|
|
34
|
-
case SpikeTypeEnum.OVERHAND:
|
|
35
|
-
return 'OVERHAND';
|
|
36
|
-
default:
|
|
37
|
-
throw new Error('UNKNOWN_ROLE');
|
|
38
|
-
}
|
|
39
|
-
}
|
|
40
|
-
function transformFromSpikeType(type) {
|
|
41
|
-
return SpikeTypeEnum[type];
|
|
42
|
-
}
|
|
43
|
-
function transformToAttributes(event, rallyId) {
|
|
44
|
-
return {
|
|
45
|
-
event_id: event.id,
|
|
46
|
-
player_id: event.player.id,
|
|
47
|
-
rally_id: rallyId,
|
|
48
|
-
order: event.order,
|
|
49
|
-
target: transformFromCourtTarget(event.target),
|
|
50
|
-
failure: transformToSpikeFailure(event.failure),
|
|
51
|
-
type: transformToSpikeType(event.type),
|
|
52
|
-
event_type: transformFromEventType(event.eventType)
|
|
53
|
-
};
|
|
54
|
-
}
|
|
55
|
-
function transformToObject(spike) {
|
|
56
|
-
return new Spike({
|
|
57
|
-
id: spike.event_id,
|
|
58
|
-
eventType: transformToEventType(spike.event_type),
|
|
59
|
-
failure: transformFromSpikeFailure(spike.failure),
|
|
60
|
-
type: transformFromSpikeType(spike.type),
|
|
61
|
-
player: transformToPlayer(spike.player),
|
|
62
|
-
target: transformToCourtTarget(spike.target),
|
|
63
|
-
order: spike.order,
|
|
64
|
-
modifier: 1,
|
|
65
|
-
score: 1,
|
|
66
|
-
activeTraits: []
|
|
67
|
-
});
|
|
68
|
-
}
|
|
69
1
|
function transformToAPIObject(event) {
|
|
70
2
|
return {
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
order: event.order,
|
|
3
|
+
eventType: event.eventType,
|
|
4
|
+
failure: event.failure,
|
|
5
|
+
type: event.type,
|
|
6
|
+
playerId: event.player,
|
|
7
|
+
target: event.target,
|
|
8
|
+
order: event.order
|
|
78
9
|
};
|
|
79
10
|
}
|
|
80
|
-
export {
|
|
11
|
+
export { transformToAPIObject as transformToAPISpike };
|
|
@@ -1,7 +1,3 @@
|
|
|
1
|
-
import { Substitution } from '../../service';
|
|
2
|
-
import { SubstitutionAttributes, SubstitutionModel } from '../models';
|
|
3
1
|
import { APISubstitution } from '../../api';
|
|
4
|
-
declare function
|
|
5
|
-
|
|
6
|
-
declare function transformToAPIObject(event: SubstitutionModel): APISubstitution;
|
|
7
|
-
export { transformToObject as transformToSubstitution, transformToAPIObject as transformToAPISubstitution, transformToAttributes as transformFromSubstitution };
|
|
2
|
+
declare function transformToAPIObject(event: any): APISubstitution;
|
|
3
|
+
export { transformToAPIObject as transformToAPISubstitution };
|
|
@@ -1,31 +1,9 @@
|
|
|
1
|
-
import { Substitution } from '../../service';
|
|
2
|
-
import { transformFromEventType, transformToEventType, transformToPlayer } from '.';
|
|
3
|
-
function transformToAttributes(event, rallyId) {
|
|
4
|
-
return {
|
|
5
|
-
player_id: event.player.id,
|
|
6
|
-
event_id: event.id,
|
|
7
|
-
order: event.order,
|
|
8
|
-
event_type: transformFromEventType(event.eventType),
|
|
9
|
-
player_out: event.playerOut.id,
|
|
10
|
-
rally_id: rallyId
|
|
11
|
-
};
|
|
12
|
-
}
|
|
13
|
-
function transformToObject(event) {
|
|
14
|
-
return new Substitution({
|
|
15
|
-
id: event.event_id,
|
|
16
|
-
player: transformToPlayer(event.player),
|
|
17
|
-
playerOut: transformToPlayer(event.playerOut),
|
|
18
|
-
order: event.order,
|
|
19
|
-
eventType: transformToEventType(event.event_type)
|
|
20
|
-
});
|
|
21
|
-
}
|
|
22
1
|
function transformToAPIObject(event) {
|
|
23
2
|
return {
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
playerId: event.player_id,
|
|
3
|
+
eventType: event.eventType,
|
|
4
|
+
playerId: event.player,
|
|
27
5
|
order: event.order,
|
|
28
|
-
playerOutId: event.
|
|
6
|
+
playerOutId: event.playerOut
|
|
29
7
|
};
|
|
30
8
|
}
|
|
31
|
-
export {
|
|
9
|
+
export { transformToAPIObject as transformToAPISubstitution };
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Team } from '../../service';
|
|
2
|
-
import { transformFromCoach, transformToAPICoach, transformToAPIPlayer, transformToCoach, transformToCountry, transformToPlayer } from '.';
|
|
2
|
+
import { transformFromCoach, transformToAPICoach, transformToAPIPlayer, transformToCoach, transformToCountry, transformToLeague, transformToPlayer } from '.';
|
|
3
3
|
function transformToAttributes(team) {
|
|
4
4
|
return {
|
|
5
5
|
team_id: team.id,
|
|
@@ -17,9 +17,10 @@ function transformToObject(team) {
|
|
|
17
17
|
id: team.team_id,
|
|
18
18
|
name: team.name,
|
|
19
19
|
shortName: team.short_name,
|
|
20
|
-
country:
|
|
21
|
-
coach:
|
|
22
|
-
roster: team.PlayerTeams
|
|
20
|
+
country: transformToCountry(team.country),
|
|
21
|
+
coach: transformToCoach(team.coach),
|
|
22
|
+
roster: team.PlayerTeams.map(pt => transformToPlayer(pt.player)),
|
|
23
|
+
league: transformToLeague(team.league),
|
|
23
24
|
rating: team.rating
|
|
24
25
|
});
|
|
25
26
|
}
|
|
@@ -6,10 +6,12 @@ function transformToAttributes(tournament) {
|
|
|
6
6
|
competition_id: tournament.id,
|
|
7
7
|
team_id: team.id
|
|
8
8
|
}));
|
|
9
|
-
const champion = tournament.champion != null
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
9
|
+
const champion = tournament.champion != null
|
|
10
|
+
? {
|
|
11
|
+
competition_id: tournament.id,
|
|
12
|
+
team_id: tournament.champion?.id
|
|
13
|
+
}
|
|
14
|
+
: undefined;
|
|
13
15
|
return {
|
|
14
16
|
competition_id: tournament.id,
|
|
15
17
|
type: 'TOURNAMENT',
|
|
@@ -27,6 +27,10 @@ function transformToAPIObject(model) {
|
|
|
27
27
|
}
|
|
28
28
|
}
|
|
29
29
|
function transformToObject(model) {
|
|
30
|
-
|
|
30
|
+
const trait = Trait.getTraits().find(trait => trait.id === model.trait_id);
|
|
31
|
+
if (trait == null) {
|
|
32
|
+
throw new Error('TRAIT_NOT_FOUND');
|
|
33
|
+
}
|
|
34
|
+
return trait;
|
|
31
35
|
}
|
|
32
36
|
export { transformToObject as transformToTrait, transformToAPIObject as transformToAPITrait, transformToAttributes as transformFromTrait };
|
|
@@ -6,14 +6,14 @@ interface CoachOpts {
|
|
|
6
6
|
readonly name: Name;
|
|
7
7
|
readonly country: Country;
|
|
8
8
|
readonly formation: Formation;
|
|
9
|
-
readonly substitutionTolerance
|
|
9
|
+
readonly substitutionTolerance: number;
|
|
10
10
|
}
|
|
11
11
|
export declare class Coach {
|
|
12
12
|
readonly id: string;
|
|
13
13
|
readonly name: Name;
|
|
14
14
|
readonly country: Country;
|
|
15
15
|
readonly formation: Formation;
|
|
16
|
-
readonly substitutionTolerance
|
|
16
|
+
readonly substitutionTolerance: number;
|
|
17
17
|
constructor({ id, name, country, formation, substitutionTolerance }: CoachOpts);
|
|
18
18
|
}
|
|
19
19
|
export {};
|
|
@@ -22,8 +22,9 @@ interface BlockOpts extends InPlayEventOpts {
|
|
|
22
22
|
export declare class Block extends InPlayEvent {
|
|
23
23
|
readonly failure: BlockFailureEnum;
|
|
24
24
|
readonly type: BlockTypeEnum;
|
|
25
|
-
readonly blockers:
|
|
26
|
-
constructor({
|
|
25
|
+
readonly blockers: string[];
|
|
26
|
+
constructor({ order, score, player, target, failure, type, modifier, eventType, blockers, activeTraits }: BlockOpts);
|
|
27
27
|
static getScore(blockers: Player[], modifier: number, activeTraits: Trait[]): number;
|
|
28
|
+
toString(): string;
|
|
28
29
|
}
|
|
29
30
|
export {};
|
|
@@ -17,11 +17,11 @@ export var BlockTypeEnum;
|
|
|
17
17
|
BlockTypeEnum[BlockTypeEnum["TRIPLE"] = 3] = "TRIPLE";
|
|
18
18
|
})(BlockTypeEnum || (BlockTypeEnum = {}));
|
|
19
19
|
export class Block extends InPlayEvent {
|
|
20
|
-
constructor({
|
|
21
|
-
super({
|
|
20
|
+
constructor({ order, score, player, target, failure, type, modifier, eventType, blockers, activeTraits }) {
|
|
21
|
+
super({ order, score, player, target, modifier, eventType, activeTraits });
|
|
22
22
|
this.type = type;
|
|
23
23
|
this.failure = failure;
|
|
24
|
-
this.blockers = blockers;
|
|
24
|
+
this.blockers = blockers.map(b => b.id);
|
|
25
25
|
}
|
|
26
26
|
static getScore(blockers, modifier, activeTraits) {
|
|
27
27
|
const type = blockers.length;
|
|
@@ -58,4 +58,7 @@ export class Block extends InPlayEvent {
|
|
|
58
58
|
}
|
|
59
59
|
return score;
|
|
60
60
|
}
|
|
61
|
+
toString() {
|
|
62
|
+
return `{order:${this.order},score:${this.order},player:${this.player},target:${this.target},failure:${this.failure},type:${this.type},modifier:${this.modifier},eventType:${this.eventType},blockers:[${this.blockers.join(',')}],activeTraits:[${this.activeTraits.join(',')}]}`;
|
|
63
|
+
}
|
|
61
64
|
}
|
|
@@ -13,7 +13,7 @@ export declare abstract class InPlayEvent extends RallyEvent {
|
|
|
13
13
|
readonly target: CourtTargetEnum;
|
|
14
14
|
readonly modifier: number;
|
|
15
15
|
readonly score: number;
|
|
16
|
-
readonly activeTraits:
|
|
17
|
-
protected constructor({
|
|
16
|
+
readonly activeTraits: string[];
|
|
17
|
+
protected constructor({ eventType, player, target, modifier, score, order, activeTraits }: InPlayEventOpts);
|
|
18
18
|
protected static calculateScore(stats: PerformanceStats, eventType: string, type: string): number;
|
|
19
19
|
}
|
|
@@ -2,12 +2,12 @@ import { RallyEvent } from './rally-event';
|
|
|
2
2
|
import formula from '../../../data/event.formula.json';
|
|
3
3
|
import { getKeys } from '../utils';
|
|
4
4
|
export class InPlayEvent extends RallyEvent {
|
|
5
|
-
constructor({
|
|
6
|
-
super({
|
|
5
|
+
constructor({ eventType, player, target, modifier, score, order, activeTraits }) {
|
|
6
|
+
super({ order, player, eventType });
|
|
7
7
|
this.target = target;
|
|
8
8
|
this.score = score;
|
|
9
9
|
this.modifier = modifier;
|
|
10
|
-
this.activeTraits = activeTraits;
|
|
10
|
+
this.activeTraits = activeTraits.map(trait => trait.id);
|
|
11
11
|
}
|
|
12
12
|
static calculateScore(stats, eventType, type) {
|
|
13
13
|
const weight = formula[eventType][type];
|
|
@@ -11,7 +11,8 @@ export declare enum LiberoReplacementTypeEnum {
|
|
|
11
11
|
}
|
|
12
12
|
export declare class LiberoReplacement extends RallyEvent {
|
|
13
13
|
readonly type: LiberoReplacementTypeEnum;
|
|
14
|
-
readonly libero:
|
|
15
|
-
constructor({
|
|
14
|
+
readonly libero: string;
|
|
15
|
+
constructor({ order, player, type, libero, eventType }: LiberoReplacementOpts);
|
|
16
|
+
toString(): string;
|
|
16
17
|
}
|
|
17
18
|
export {};
|
|
@@ -5,9 +5,12 @@ export var LiberoReplacementTypeEnum;
|
|
|
5
5
|
LiberoReplacementTypeEnum[LiberoReplacementTypeEnum["LIBERO_OUT"] = 1] = "LIBERO_OUT";
|
|
6
6
|
})(LiberoReplacementTypeEnum || (LiberoReplacementTypeEnum = {}));
|
|
7
7
|
export class LiberoReplacement extends RallyEvent {
|
|
8
|
-
constructor({
|
|
9
|
-
super({
|
|
8
|
+
constructor({ order, player, type, libero, eventType }) {
|
|
9
|
+
super({ order, player, eventType });
|
|
10
10
|
this.type = type;
|
|
11
|
-
this.libero = libero;
|
|
11
|
+
this.libero = libero.id;
|
|
12
|
+
}
|
|
13
|
+
toString() {
|
|
14
|
+
return `{order:${this.order},player:${this.player},type:${this.type},eventType:${this.eventType},libero:${this.libero}}`;
|
|
12
15
|
}
|
|
13
16
|
}
|
|
@@ -9,15 +9,13 @@ export declare enum EventTypeEnum {
|
|
|
9
9
|
BLOCK = 6
|
|
10
10
|
}
|
|
11
11
|
export interface RallyEventOpts {
|
|
12
|
-
readonly id: string;
|
|
13
12
|
readonly player: Player;
|
|
14
13
|
readonly eventType: EventTypeEnum;
|
|
15
14
|
readonly order: number;
|
|
16
15
|
}
|
|
17
16
|
export declare abstract class RallyEvent {
|
|
18
|
-
readonly id: string;
|
|
19
17
|
readonly order: number;
|
|
20
|
-
readonly player:
|
|
18
|
+
readonly player: string;
|
|
21
19
|
readonly eventType: EventTypeEnum;
|
|
22
|
-
protected constructor({
|
|
20
|
+
protected constructor({ eventType, player, order }: RallyEventOpts);
|
|
23
21
|
}
|
|
@@ -9,9 +9,8 @@ export var EventTypeEnum;
|
|
|
9
9
|
EventTypeEnum[EventTypeEnum["BLOCK"] = 6] = "BLOCK";
|
|
10
10
|
})(EventTypeEnum || (EventTypeEnum = {}));
|
|
11
11
|
export class RallyEvent {
|
|
12
|
-
constructor({
|
|
13
|
-
this.
|
|
14
|
-
this.player = player;
|
|
12
|
+
constructor({ eventType, player, order }) {
|
|
13
|
+
this.player = player.id;
|
|
15
14
|
this.order = order;
|
|
16
15
|
this.eventType = eventType;
|
|
17
16
|
}
|
|
@@ -20,7 +20,8 @@ interface ReceptionOpts extends InPlayEventOpts {
|
|
|
20
20
|
export declare class Reception extends InPlayEvent {
|
|
21
21
|
readonly failure: ReceptionFailureEnum;
|
|
22
22
|
readonly type: ReceptionTypeEnum;
|
|
23
|
-
constructor({
|
|
23
|
+
constructor({ order, score, player, target, failure, type, eventType, modifier, activeTraits }: ReceptionOpts);
|
|
24
24
|
static getScore(stats: PerformanceStats, type: ReceptionTypeEnum, modifier: number, activeTraits: Trait[]): number;
|
|
25
|
+
toString(): string;
|
|
25
26
|
}
|
|
26
27
|
export {};
|
|
@@ -16,8 +16,8 @@ export var ReceptionFailureEnum;
|
|
|
16
16
|
ReceptionFailureEnum[ReceptionFailureEnum["BAD_PASS"] = 4] = "BAD_PASS";
|
|
17
17
|
})(ReceptionFailureEnum || (ReceptionFailureEnum = {}));
|
|
18
18
|
export class Reception extends InPlayEvent {
|
|
19
|
-
constructor({
|
|
20
|
-
super({
|
|
19
|
+
constructor({ order, score, player, target, failure, type, eventType, modifier, activeTraits }) {
|
|
20
|
+
super({ order, score, player, target, eventType, modifier, activeTraits });
|
|
21
21
|
this.type = type;
|
|
22
22
|
this.failure = failure;
|
|
23
23
|
}
|
|
@@ -33,4 +33,7 @@ export class Reception extends InPlayEvent {
|
|
|
33
33
|
}
|
|
34
34
|
return score;
|
|
35
35
|
}
|
|
36
|
+
toString() {
|
|
37
|
+
return `{order:${this.order},score:${this.order},player:${this.player},target:${this.target},failure:${this.failure},type:${this.type},modifier:${this.modifier},eventType:${this.eventType},activeTraits:[${this.activeTraits.join(',')}]}`;
|
|
38
|
+
}
|
|
36
39
|
}
|
|
@@ -21,7 +21,8 @@ interface ServeOpts extends InPlayEventOpts {
|
|
|
21
21
|
export declare class Serve extends InPlayEvent {
|
|
22
22
|
readonly failure: ServeFailureEnum;
|
|
23
23
|
readonly type: ServeTypeEnum;
|
|
24
|
-
constructor({
|
|
24
|
+
constructor({ order, score, player, target, failure, type, eventType, modifier, activeTraits }: ServeOpts);
|
|
25
25
|
static getScore(stats: PerformanceStats, type: ServeTypeEnum, modifier: number, activeTraits: Trait[]): number;
|
|
26
|
+
toString(): string;
|
|
26
27
|
}
|
|
27
28
|
export {};
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import { InPlayEvent } from './in-play-event';
|
|
2
|
-
import { Trait } from '../player';
|
|
3
2
|
export var ServeTypeEnum;
|
|
4
3
|
(function (ServeTypeEnum) {
|
|
5
4
|
ServeTypeEnum[ServeTypeEnum["UNDERHAND"] = 0] = "UNDERHAND";
|
|
@@ -17,21 +16,19 @@ export var ServeFailureEnum;
|
|
|
17
16
|
ServeFailureEnum[ServeFailureEnum["OUT_OF_BOUNDS"] = 4] = "OUT_OF_BOUNDS";
|
|
18
17
|
})(ServeFailureEnum || (ServeFailureEnum = {}));
|
|
19
18
|
export class Serve extends InPlayEvent {
|
|
20
|
-
constructor({
|
|
21
|
-
super({
|
|
19
|
+
constructor({ order, score, player, target, failure, type, eventType, modifier, activeTraits }) {
|
|
20
|
+
super({ order, score, player, target, eventType, modifier, activeTraits });
|
|
22
21
|
this.type = type;
|
|
23
22
|
this.failure = failure;
|
|
24
23
|
}
|
|
25
24
|
static getScore(stats, type, modifier, activeTraits) {
|
|
26
25
|
let score = Serve.calculateScore(stats, 'SERVE', ServeTypeEnum[type]) * modifier;
|
|
27
26
|
for (const trait of activeTraits) {
|
|
28
|
-
|
|
29
|
-
case trait === Trait.METEOR_SERVE: {
|
|
30
|
-
score *= Trait.METEOR_SERVE.modifier;
|
|
31
|
-
break;
|
|
32
|
-
}
|
|
33
|
-
}
|
|
27
|
+
score *= trait.modifier;
|
|
34
28
|
}
|
|
35
29
|
return score;
|
|
36
30
|
}
|
|
31
|
+
toString() {
|
|
32
|
+
return `{order:${this.order},score:${this.order},player:${this.player},target:${this.target},failure:${this.failure},type:${this.type},modifier:${this.modifier},eventType:${this.eventType},activeTraits:[${this.activeTraits.join(',')}]}`;
|
|
33
|
+
}
|
|
37
34
|
}
|
|
@@ -20,7 +20,8 @@ interface SetOpts extends InPlayEventOpts {
|
|
|
20
20
|
export declare class Set extends InPlayEvent {
|
|
21
21
|
readonly failure: SetFailureEnum;
|
|
22
22
|
readonly type: SetTypeEnum;
|
|
23
|
-
constructor({
|
|
23
|
+
constructor({ order, score, player, target, failure, type, eventType, modifier, activeTraits }: SetOpts);
|
|
24
24
|
static getScore(stats: PerformanceStats, type: SetTypeEnum, modifier: number, activeTraits: Trait[]): number;
|
|
25
|
+
toString(): string;
|
|
25
26
|
}
|
|
26
27
|
export {};
|
|
@@ -16,8 +16,8 @@ export var SetFailureEnum;
|
|
|
16
16
|
SetFailureEnum[SetFailureEnum["OUT_OF_BOUNDS"] = 4] = "OUT_OF_BOUNDS";
|
|
17
17
|
})(SetFailureEnum || (SetFailureEnum = {}));
|
|
18
18
|
export class Set extends InPlayEvent {
|
|
19
|
-
constructor({
|
|
20
|
-
super({
|
|
19
|
+
constructor({ order, score, player, target, failure, type, eventType, modifier, activeTraits }) {
|
|
20
|
+
super({ order, score, player, target, eventType, modifier, activeTraits });
|
|
21
21
|
this.type = type;
|
|
22
22
|
this.failure = failure;
|
|
23
23
|
}
|
|
@@ -38,4 +38,7 @@ export class Set extends InPlayEvent {
|
|
|
38
38
|
}
|
|
39
39
|
return score;
|
|
40
40
|
}
|
|
41
|
+
toString() {
|
|
42
|
+
return `{order:${this.order},score:${this.order},player:${this.player},target:${this.target},failure:${this.failure},type:${this.type},modifier:${this.modifier},eventType:${this.eventType},activeTraits:[${this.activeTraits.join(',')}]}`;
|
|
43
|
+
}
|
|
41
44
|
}
|
|
@@ -22,7 +22,8 @@ interface SpikeOpts extends InPlayEventOpts {
|
|
|
22
22
|
export declare class Spike extends InPlayEvent {
|
|
23
23
|
readonly failure: SpikeFailureEnum;
|
|
24
24
|
readonly type: SpikeTypeEnum;
|
|
25
|
-
constructor({
|
|
25
|
+
constructor({ order, score, player, target, failure, type, eventType, modifier, activeTraits }: SpikeOpts);
|
|
26
26
|
static getScore(player: Player, type: SpikeTypeEnum, modifier: number, isBackRow: boolean, activeTraits: Trait[]): number;
|
|
27
|
+
toString(): string;
|
|
27
28
|
}
|
|
28
29
|
export {};
|
|
@@ -18,8 +18,8 @@ export var SpikeFailureEnum;
|
|
|
18
18
|
SpikeFailureEnum[SpikeFailureEnum["NET"] = 4] = "NET";
|
|
19
19
|
})(SpikeFailureEnum || (SpikeFailureEnum = {}));
|
|
20
20
|
export class Spike extends InPlayEvent {
|
|
21
|
-
constructor({
|
|
22
|
-
super({
|
|
21
|
+
constructor({ order, score, player, target, failure, type, eventType, modifier, activeTraits }) {
|
|
22
|
+
super({ order, score, player, target, eventType, modifier, activeTraits });
|
|
23
23
|
this.type = type;
|
|
24
24
|
this.failure = failure;
|
|
25
25
|
}
|
|
@@ -43,4 +43,7 @@ export class Spike extends InPlayEvent {
|
|
|
43
43
|
}
|
|
44
44
|
return score;
|
|
45
45
|
}
|
|
46
|
+
toString() {
|
|
47
|
+
return `{order:${this.order},score:${this.order},player:${this.player},target:${this.target},failure:${this.failure},type:${this.type},modifier:${this.modifier},eventType:${this.eventType},activeTraits:[${this.activeTraits.join(',')}]}`;
|
|
48
|
+
}
|
|
46
49
|
}
|
|
@@ -4,7 +4,8 @@ interface SubstitutionOpts extends RallyEventOpts {
|
|
|
4
4
|
readonly playerOut: Player;
|
|
5
5
|
}
|
|
6
6
|
export declare class Substitution extends RallyEvent {
|
|
7
|
-
readonly playerOut:
|
|
8
|
-
constructor({
|
|
7
|
+
readonly playerOut: string;
|
|
8
|
+
constructor({ order, playerOut, player, eventType }: SubstitutionOpts);
|
|
9
|
+
toString(): string;
|
|
9
10
|
}
|
|
10
11
|
export {};
|
|
@@ -1,7 +1,10 @@
|
|
|
1
1
|
import { RallyEvent } from './rally-event';
|
|
2
2
|
export class Substitution extends RallyEvent {
|
|
3
|
-
constructor({
|
|
4
|
-
super({ eventType, player, order
|
|
5
|
-
this.playerOut = playerOut;
|
|
3
|
+
constructor({ order, playerOut, player, eventType }) {
|
|
4
|
+
super({ eventType, player, order });
|
|
5
|
+
this.playerOut = playerOut.id;
|
|
6
|
+
}
|
|
7
|
+
toString() {
|
|
8
|
+
return `{order:${this.order},score:${this.order},player:${this.player},playerOut:${this.playerOut},eventType:${this.eventType}}`;
|
|
6
9
|
}
|
|
7
10
|
}
|
|
@@ -8,18 +8,18 @@ interface TeamOpts {
|
|
|
8
8
|
readonly name: string;
|
|
9
9
|
readonly shortName: string;
|
|
10
10
|
readonly roster: Player[];
|
|
11
|
-
readonly country
|
|
12
|
-
readonly league
|
|
13
|
-
readonly coach
|
|
11
|
+
readonly country: Country;
|
|
12
|
+
readonly league: League;
|
|
13
|
+
readonly coach: Coach;
|
|
14
14
|
}
|
|
15
15
|
export declare class Team {
|
|
16
16
|
readonly id: string;
|
|
17
17
|
readonly roster: Player[];
|
|
18
18
|
readonly name: string;
|
|
19
19
|
readonly shortName: string;
|
|
20
|
-
readonly coach
|
|
21
|
-
readonly league
|
|
22
|
-
readonly country
|
|
20
|
+
readonly coach: Coach;
|
|
21
|
+
readonly league: League;
|
|
22
|
+
readonly country: Country;
|
|
23
23
|
private _rating;
|
|
24
24
|
constructor({ id, rating, name, shortName, country, roster, coach, league }: TeamOpts);
|
|
25
25
|
get rating(): number;
|
|
@@ -22,6 +22,9 @@ export class Team {
|
|
|
22
22
|
return this.roster.some(p => p.id === player.id);
|
|
23
23
|
}
|
|
24
24
|
toString() {
|
|
25
|
+
if (this.country == null) {
|
|
26
|
+
throw new Error('UNKNOWN_COUNTRY');
|
|
27
|
+
}
|
|
25
28
|
return `${this.name} [${this.shortName}] (${this.country?.name}) ELO=${this._rating}`;
|
|
26
29
|
}
|
|
27
30
|
updateRating(ratingChange) {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "volleyballsimtypes",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.124",
|
|
4
4
|
"description": "vbsim types",
|
|
5
5
|
"main": "./dist/cjs/src/index.js",
|
|
6
6
|
"module": "./dist/esm/src/index.js",
|
|
@@ -11,9 +11,9 @@
|
|
|
11
11
|
"madge": "npx madge --warning --circular --extensions ts ./",
|
|
12
12
|
"standard": "npx ts-standard --fix",
|
|
13
13
|
"clean": "rimraf dist",
|
|
14
|
-
"
|
|
14
|
+
"validate": "npm run standard && npm run madge",
|
|
15
15
|
"build": "tsc -p tsconfig.json && tsc -p tsconfig-cjs.json",
|
|
16
|
-
"preversion": "npm run build",
|
|
16
|
+
"preversion": "npm run validate && npm run build",
|
|
17
17
|
"postversion": "git push --follow-tags"
|
|
18
18
|
},
|
|
19
19
|
"author": "Francisco Farias <fariasfranciscoe@gmail.com>",
|
|
@@ -33,6 +33,7 @@
|
|
|
33
33
|
},
|
|
34
34
|
"dependencies": {
|
|
35
35
|
"@types/sequelize": "^4.28.15",
|
|
36
|
+
"lz-string": "^1.5.0",
|
|
36
37
|
"moment": "^2.29.4",
|
|
37
38
|
"pg": "^8.11.1",
|
|
38
39
|
"pg-hstore": "^2.3.4",
|
|
@@ -1,56 +0,0 @@
|
|
|
1
|
-
import * as Sequelize from 'sequelize';
|
|
2
|
-
import { Model, Optional } from 'sequelize';
|
|
3
|
-
import { CourtTarget, EventType, PlayerId, PlayerModel, RallyId, RallyModel } from '.';
|
|
4
|
-
export interface BlockAttributes {
|
|
5
|
-
event_id: string;
|
|
6
|
-
rally_id: string;
|
|
7
|
-
order: number;
|
|
8
|
-
player_id: string;
|
|
9
|
-
target: CourtTarget;
|
|
10
|
-
type: BlockType;
|
|
11
|
-
failure: BlockFailure;
|
|
12
|
-
blocker_1?: string;
|
|
13
|
-
blocker_2?: string;
|
|
14
|
-
blocker_3?: string;
|
|
15
|
-
event_type: EventType;
|
|
16
|
-
}
|
|
17
|
-
export type BlockPk = 'event_id';
|
|
18
|
-
export type BlockType = 'NO_BLOCKER' | 'SINGLE' | 'DOUBLE' | 'TRIPLE';
|
|
19
|
-
export type BlockFailure = 'NO_FAILURE' | 'FAULT' | 'MISS' | 'OUT_OF_BOUNDS' | 'WIPE' | 'TOOL';
|
|
20
|
-
export type BlockId = BlockModel[BlockPk];
|
|
21
|
-
export type BlockOptionalAttributes = 'blocker_1' | 'blocker_2' | 'blocker_3';
|
|
22
|
-
export type BlockCreationAttributes = Optional<BlockAttributes, BlockOptionalAttributes>;
|
|
23
|
-
export declare class BlockModel extends Model<BlockAttributes, BlockCreationAttributes> implements BlockAttributes {
|
|
24
|
-
event_id: string;
|
|
25
|
-
rally_id: string;
|
|
26
|
-
order: number;
|
|
27
|
-
player_id: string;
|
|
28
|
-
target: CourtTarget;
|
|
29
|
-
type: BlockType;
|
|
30
|
-
failure: BlockFailure;
|
|
31
|
-
blocker_1?: string;
|
|
32
|
-
blocker_2?: string;
|
|
33
|
-
blocker_3?: string;
|
|
34
|
-
event_type: EventType;
|
|
35
|
-
player: PlayerModel;
|
|
36
|
-
getPlayer: Sequelize.BelongsToGetAssociationMixin<PlayerModel>;
|
|
37
|
-
setPlayer: Sequelize.BelongsToSetAssociationMixin<PlayerModel, PlayerId>;
|
|
38
|
-
createPlayer: Sequelize.BelongsToCreateAssociationMixin<PlayerModel>;
|
|
39
|
-
Blocker_1: PlayerModel;
|
|
40
|
-
getBlocker_1: Sequelize.BelongsToGetAssociationMixin<PlayerModel>;
|
|
41
|
-
setBlocker_1: Sequelize.BelongsToSetAssociationMixin<PlayerModel, PlayerId>;
|
|
42
|
-
createBlocker_1: Sequelize.BelongsToCreateAssociationMixin<PlayerModel>;
|
|
43
|
-
Blocker_2: PlayerModel;
|
|
44
|
-
getBlocker_2: Sequelize.BelongsToGetAssociationMixin<PlayerModel>;
|
|
45
|
-
setBlocker_2: Sequelize.BelongsToSetAssociationMixin<PlayerModel, PlayerId>;
|
|
46
|
-
createBlocker_2: Sequelize.BelongsToCreateAssociationMixin<PlayerModel>;
|
|
47
|
-
Blocker_3: PlayerModel;
|
|
48
|
-
getBlocker_3: Sequelize.BelongsToGetAssociationMixin<PlayerModel>;
|
|
49
|
-
setBlocker_3: Sequelize.BelongsToSetAssociationMixin<PlayerModel, PlayerId>;
|
|
50
|
-
createBlocker_3: Sequelize.BelongsToCreateAssociationMixin<PlayerModel>;
|
|
51
|
-
rally: RallyModel;
|
|
52
|
-
getRally: Sequelize.BelongsToGetAssociationMixin<RallyModel>;
|
|
53
|
-
setRally: Sequelize.BelongsToSetAssociationMixin<RallyModel, RallyId>;
|
|
54
|
-
createRally: Sequelize.BelongsToCreateAssociationMixin<RallyModel>;
|
|
55
|
-
static initModel(sequelize: Sequelize.Sequelize): typeof BlockModel;
|
|
56
|
-
}
|