volleyballsimtypes 0.0.125 → 0.0.126
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/data/transformers/rally.js +17 -32
- package/dist/cjs/src/service/event/block.d.ts +1 -1
- package/dist/cjs/src/service/event/block.js +3 -3
- package/dist/cjs/src/service/event/in-play-event.d.ts +1 -1
- package/dist/cjs/src/service/event/in-play-event.js +2 -2
- package/dist/cjs/src/service/event/libero-replacement.d.ts +1 -1
- package/dist/cjs/src/service/event/libero-replacement.js +3 -3
- package/dist/cjs/src/service/event/rally-event.d.ts +1 -3
- package/dist/cjs/src/service/event/rally-event.js +1 -2
- package/dist/cjs/src/service/event/reception.d.ts +1 -1
- package/dist/cjs/src/service/event/reception.js +3 -3
- package/dist/cjs/src/service/event/serve.d.ts +1 -1
- package/dist/cjs/src/service/event/serve.js +3 -3
- package/dist/cjs/src/service/event/set.d.ts +1 -1
- package/dist/cjs/src/service/event/set.js +3 -3
- package/dist/cjs/src/service/event/spike.d.ts +1 -1
- package/dist/cjs/src/service/event/spike.js +3 -3
- package/dist/cjs/src/service/event/substitution.d.ts +1 -1
- package/dist/cjs/src/service/event/substitution.js +3 -3
- package/dist/esm/src/data/transformers/rally.js +17 -32
- package/dist/esm/src/service/event/block.d.ts +1 -1
- package/dist/esm/src/service/event/block.js +3 -3
- package/dist/esm/src/service/event/in-play-event.d.ts +1 -1
- package/dist/esm/src/service/event/in-play-event.js +2 -2
- package/dist/esm/src/service/event/libero-replacement.d.ts +1 -1
- package/dist/esm/src/service/event/libero-replacement.js +3 -3
- package/dist/esm/src/service/event/rally-event.d.ts +1 -3
- package/dist/esm/src/service/event/rally-event.js +1 -2
- package/dist/esm/src/service/event/reception.d.ts +1 -1
- package/dist/esm/src/service/event/reception.js +3 -3
- package/dist/esm/src/service/event/serve.d.ts +1 -1
- package/dist/esm/src/service/event/serve.js +3 -3
- package/dist/esm/src/service/event/set.d.ts +1 -1
- package/dist/esm/src/service/event/set.js +3 -3
- package/dist/esm/src/service/event/spike.d.ts +1 -1
- package/dist/esm/src/service/event/spike.js +3 -3
- package/dist/esm/src/service/event/substitution.d.ts +1 -1
- package/dist/esm/src/service/event/substitution.js +3 -3
- package/package.json +1 -1
|
@@ -36,42 +36,35 @@ function transformToAttributes(rally, setId) {
|
|
|
36
36
|
exports.transformFromRally = transformToAttributes;
|
|
37
37
|
function transformToObject(model) {
|
|
38
38
|
const decompressed = JSON.parse((0, lz_string_1.decompressFromBase64)(model.events));
|
|
39
|
-
const
|
|
40
|
-
const substitutions = [];
|
|
41
|
-
const serves = [];
|
|
42
|
-
const receptions = [];
|
|
43
|
-
const sets = [];
|
|
44
|
-
const spikes = [];
|
|
45
|
-
const blocks = [];
|
|
39
|
+
const events = [];
|
|
46
40
|
decompressed.forEach(event => {
|
|
47
41
|
switch (event.event_type) {
|
|
48
42
|
case 0:
|
|
49
|
-
|
|
43
|
+
events.push(event);
|
|
50
44
|
break;
|
|
51
45
|
case 1:
|
|
52
|
-
|
|
46
|
+
events.push(event);
|
|
53
47
|
break;
|
|
54
48
|
case 2:
|
|
55
|
-
|
|
49
|
+
events.push(event);
|
|
56
50
|
break;
|
|
57
51
|
case 3:
|
|
58
|
-
|
|
52
|
+
events.push(event);
|
|
59
53
|
break;
|
|
60
54
|
case 4:
|
|
61
|
-
|
|
55
|
+
events.push(event);
|
|
62
56
|
break;
|
|
63
57
|
case 5:
|
|
64
|
-
|
|
58
|
+
events.push(event);
|
|
65
59
|
break;
|
|
66
60
|
case 6:
|
|
67
|
-
|
|
61
|
+
events.push(event);
|
|
68
62
|
break;
|
|
69
63
|
default:
|
|
70
64
|
throw new Error('UNKNOWN_EVENT');
|
|
71
65
|
}
|
|
66
|
+
events.push(event);
|
|
72
67
|
});
|
|
73
|
-
const events = [...liberoReplacements, ...substitutions, ...serves, ...receptions, ...sets, ...spikes, ...blocks]
|
|
74
|
-
.sort((e1, e2) => e1.order - e2.order);
|
|
75
68
|
return new service_1.Rally({
|
|
76
69
|
id: model.rally_id,
|
|
77
70
|
order: model.order,
|
|
@@ -82,42 +75,34 @@ function transformToObject(model) {
|
|
|
82
75
|
exports.transformToRally = transformToObject;
|
|
83
76
|
function transformToAPIObject(model) {
|
|
84
77
|
const decompressed = JSON.parse((0, lz_string_1.decompressFromBase64)(model.events));
|
|
85
|
-
const
|
|
86
|
-
const substitutions = [];
|
|
87
|
-
const serves = [];
|
|
88
|
-
const receptions = [];
|
|
89
|
-
const sets = [];
|
|
90
|
-
const spikes = [];
|
|
91
|
-
const blocks = [];
|
|
78
|
+
const events = [];
|
|
92
79
|
decompressed.forEach(event => {
|
|
93
80
|
switch (event.event_type) {
|
|
94
81
|
case 0:
|
|
95
|
-
|
|
82
|
+
events.push((0, _1.transformToAPILiberoReplacement)(event));
|
|
96
83
|
break;
|
|
97
84
|
case 1:
|
|
98
|
-
|
|
85
|
+
events.push((0, _1.transformToAPISubstitution)(event));
|
|
99
86
|
break;
|
|
100
87
|
case 2:
|
|
101
|
-
|
|
88
|
+
events.push((0, _1.transformToAPIServe)(event));
|
|
102
89
|
break;
|
|
103
90
|
case 3:
|
|
104
|
-
|
|
91
|
+
events.push((0, _1.transformToAPIReception)(event));
|
|
105
92
|
break;
|
|
106
93
|
case 4:
|
|
107
|
-
|
|
94
|
+
events.push((0, _1.transformToAPISet)(event));
|
|
108
95
|
break;
|
|
109
96
|
case 5:
|
|
110
|
-
|
|
97
|
+
events.push((0, _1.transformToAPISpike)(event));
|
|
111
98
|
break;
|
|
112
99
|
case 6:
|
|
113
|
-
|
|
100
|
+
events.push((0, _1.transformToAPIBlock)(event));
|
|
114
101
|
break;
|
|
115
102
|
default:
|
|
116
103
|
throw new Error('UNKNOWN_EVENT');
|
|
117
104
|
}
|
|
118
105
|
});
|
|
119
|
-
const events = [...liberoReplacements, ...substitutions, ...serves, ...receptions, ...sets, ...spikes, ...blocks]
|
|
120
|
-
.sort((e1, e2) => e1.order - e2.order);
|
|
121
106
|
return {
|
|
122
107
|
id: model.rally_id,
|
|
123
108
|
order: model.order,
|
|
@@ -23,7 +23,7 @@ export declare class Block extends InPlayEvent {
|
|
|
23
23
|
readonly failure: BlockFailureEnum;
|
|
24
24
|
readonly type: BlockTypeEnum;
|
|
25
25
|
readonly blockers: string[];
|
|
26
|
-
constructor({
|
|
26
|
+
constructor({ score, player, target, failure, type, modifier, eventType, blockers, activeTraits }: BlockOpts);
|
|
27
27
|
static getScore(blockers: Player[], modifier: number, activeTraits: Trait[]): number;
|
|
28
28
|
toString(): string;
|
|
29
29
|
}
|
|
@@ -20,8 +20,8 @@ var BlockTypeEnum;
|
|
|
20
20
|
BlockTypeEnum[BlockTypeEnum["TRIPLE"] = 3] = "TRIPLE";
|
|
21
21
|
})(BlockTypeEnum = exports.BlockTypeEnum || (exports.BlockTypeEnum = {}));
|
|
22
22
|
class Block extends in_play_event_1.InPlayEvent {
|
|
23
|
-
constructor({
|
|
24
|
-
super({
|
|
23
|
+
constructor({ score, player, target, failure, type, modifier, eventType, blockers, activeTraits }) {
|
|
24
|
+
super({ score, player, target, modifier, eventType, activeTraits });
|
|
25
25
|
this.type = type;
|
|
26
26
|
this.failure = failure;
|
|
27
27
|
this.blockers = blockers.map(b => b.id);
|
|
@@ -62,7 +62,7 @@ class Block extends in_play_event_1.InPlayEvent {
|
|
|
62
62
|
return score;
|
|
63
63
|
}
|
|
64
64
|
toString() {
|
|
65
|
-
return `{
|
|
65
|
+
return `{score:${this.score},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(',')}]}`;
|
|
66
66
|
}
|
|
67
67
|
}
|
|
68
68
|
exports.Block = Block;
|
|
@@ -14,6 +14,6 @@ export declare abstract class InPlayEvent extends RallyEvent {
|
|
|
14
14
|
readonly modifier: number;
|
|
15
15
|
readonly score: number;
|
|
16
16
|
readonly activeTraits: string[];
|
|
17
|
-
protected constructor({ eventType, player, target, modifier, score,
|
|
17
|
+
protected constructor({ eventType, player, target, modifier, score, activeTraits }: InPlayEventOpts);
|
|
18
18
|
protected static calculateScore(stats: PerformanceStats, eventType: string, type: string): number;
|
|
19
19
|
}
|
|
@@ -8,8 +8,8 @@ const rally_event_1 = require("./rally-event");
|
|
|
8
8
|
const event_formula_json_1 = __importDefault(require("../../../data/event.formula.json"));
|
|
9
9
|
const utils_1 = require("../utils");
|
|
10
10
|
class InPlayEvent extends rally_event_1.RallyEvent {
|
|
11
|
-
constructor({ eventType, player, target, modifier, score,
|
|
12
|
-
super({
|
|
11
|
+
constructor({ eventType, player, target, modifier, score, activeTraits }) {
|
|
12
|
+
super({ player, eventType });
|
|
13
13
|
this.target = target;
|
|
14
14
|
this.score = score;
|
|
15
15
|
this.modifier = modifier;
|
|
@@ -12,7 +12,7 @@ export declare enum LiberoReplacementTypeEnum {
|
|
|
12
12
|
export declare class LiberoReplacement extends RallyEvent {
|
|
13
13
|
readonly type: LiberoReplacementTypeEnum;
|
|
14
14
|
readonly libero: string;
|
|
15
|
-
constructor({
|
|
15
|
+
constructor({ player, type, libero, eventType }: LiberoReplacementOpts);
|
|
16
16
|
toString(): string;
|
|
17
17
|
}
|
|
18
18
|
export {};
|
|
@@ -8,13 +8,13 @@ var LiberoReplacementTypeEnum;
|
|
|
8
8
|
LiberoReplacementTypeEnum[LiberoReplacementTypeEnum["LIBERO_OUT"] = 1] = "LIBERO_OUT";
|
|
9
9
|
})(LiberoReplacementTypeEnum = exports.LiberoReplacementTypeEnum || (exports.LiberoReplacementTypeEnum = {}));
|
|
10
10
|
class LiberoReplacement extends rally_event_1.RallyEvent {
|
|
11
|
-
constructor({
|
|
12
|
-
super({
|
|
11
|
+
constructor({ player, type, libero, eventType }) {
|
|
12
|
+
super({ player, eventType });
|
|
13
13
|
this.type = type;
|
|
14
14
|
this.libero = libero.id;
|
|
15
15
|
}
|
|
16
16
|
toString() {
|
|
17
|
-
return `{
|
|
17
|
+
return `{player:${this.player},type:${this.type},eventType:${this.eventType},libero:${this.libero}}`;
|
|
18
18
|
}
|
|
19
19
|
}
|
|
20
20
|
exports.LiberoReplacement = LiberoReplacement;
|
|
@@ -11,11 +11,9 @@ export declare enum EventTypeEnum {
|
|
|
11
11
|
export interface RallyEventOpts {
|
|
12
12
|
readonly player: Player;
|
|
13
13
|
readonly eventType: EventTypeEnum;
|
|
14
|
-
readonly order: number;
|
|
15
14
|
}
|
|
16
15
|
export declare abstract class RallyEvent {
|
|
17
|
-
readonly order: number;
|
|
18
16
|
readonly player: string;
|
|
19
17
|
readonly eventType: EventTypeEnum;
|
|
20
|
-
protected constructor({ eventType, player
|
|
18
|
+
protected constructor({ eventType, player }: RallyEventOpts);
|
|
21
19
|
}
|
|
@@ -12,9 +12,8 @@ var EventTypeEnum;
|
|
|
12
12
|
EventTypeEnum[EventTypeEnum["BLOCK"] = 6] = "BLOCK";
|
|
13
13
|
})(EventTypeEnum = exports.EventTypeEnum || (exports.EventTypeEnum = {}));
|
|
14
14
|
class RallyEvent {
|
|
15
|
-
constructor({ eventType, player
|
|
15
|
+
constructor({ eventType, player }) {
|
|
16
16
|
this.player = player.id;
|
|
17
|
-
this.order = order;
|
|
18
17
|
this.eventType = eventType;
|
|
19
18
|
}
|
|
20
19
|
}
|
|
@@ -20,7 +20,7 @@ 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({ score, player, target, failure, type, eventType, modifier, activeTraits }: ReceptionOpts);
|
|
24
24
|
static getScore(stats: PerformanceStats, type: ReceptionTypeEnum, modifier: number, activeTraits: Trait[]): number;
|
|
25
25
|
toString(): string;
|
|
26
26
|
}
|
|
@@ -19,8 +19,8 @@ var ReceptionFailureEnum;
|
|
|
19
19
|
ReceptionFailureEnum[ReceptionFailureEnum["BAD_PASS"] = 4] = "BAD_PASS";
|
|
20
20
|
})(ReceptionFailureEnum = exports.ReceptionFailureEnum || (exports.ReceptionFailureEnum = {}));
|
|
21
21
|
class Reception extends in_play_event_1.InPlayEvent {
|
|
22
|
-
constructor({
|
|
23
|
-
super({
|
|
22
|
+
constructor({ score, player, target, failure, type, eventType, modifier, activeTraits }) {
|
|
23
|
+
super({ score, player, target, eventType, modifier, activeTraits });
|
|
24
24
|
this.type = type;
|
|
25
25
|
this.failure = failure;
|
|
26
26
|
}
|
|
@@ -37,7 +37,7 @@ class Reception extends in_play_event_1.InPlayEvent {
|
|
|
37
37
|
return score;
|
|
38
38
|
}
|
|
39
39
|
toString() {
|
|
40
|
-
return `{
|
|
40
|
+
return `{score:${this.score},player:${this.player},target:${this.target},failure:${this.failure},type:${this.type},modifier:${this.modifier},eventType:${this.eventType},activeTraits:[${this.activeTraits.join(',')}]}`;
|
|
41
41
|
}
|
|
42
42
|
}
|
|
43
43
|
exports.Reception = Reception;
|
|
@@ -21,7 +21,7 @@ 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({ score, player, target, failure, type, eventType, modifier, activeTraits }: ServeOpts);
|
|
25
25
|
static getScore(stats: PerformanceStats, type: ServeTypeEnum, modifier: number, activeTraits: Trait[]): number;
|
|
26
26
|
toString(): string;
|
|
27
27
|
}
|
|
@@ -19,8 +19,8 @@ var ServeFailureEnum;
|
|
|
19
19
|
ServeFailureEnum[ServeFailureEnum["OUT_OF_BOUNDS"] = 4] = "OUT_OF_BOUNDS";
|
|
20
20
|
})(ServeFailureEnum = exports.ServeFailureEnum || (exports.ServeFailureEnum = {}));
|
|
21
21
|
class Serve extends in_play_event_1.InPlayEvent {
|
|
22
|
-
constructor({
|
|
23
|
-
super({
|
|
22
|
+
constructor({ score, player, target, failure, type, eventType, modifier, activeTraits }) {
|
|
23
|
+
super({ score, player, target, eventType, modifier, activeTraits });
|
|
24
24
|
this.type = type;
|
|
25
25
|
this.failure = failure;
|
|
26
26
|
}
|
|
@@ -32,7 +32,7 @@ class Serve extends in_play_event_1.InPlayEvent {
|
|
|
32
32
|
return score;
|
|
33
33
|
}
|
|
34
34
|
toString() {
|
|
35
|
-
return `{
|
|
35
|
+
return `{score:${this.score},player:${this.player},target:${this.target},failure:${this.failure},type:${this.type},modifier:${this.modifier},eventType:${this.eventType},activeTraits:[${this.activeTraits.join(',')}]}`;
|
|
36
36
|
}
|
|
37
37
|
}
|
|
38
38
|
exports.Serve = Serve;
|
|
@@ -20,7 +20,7 @@ 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({ score, player, target, failure, type, eventType, modifier, activeTraits }: SetOpts);
|
|
24
24
|
static getScore(stats: PerformanceStats, type: SetTypeEnum, modifier: number, activeTraits: Trait[]): number;
|
|
25
25
|
toString(): string;
|
|
26
26
|
}
|
|
@@ -19,8 +19,8 @@ var SetFailureEnum;
|
|
|
19
19
|
SetFailureEnum[SetFailureEnum["OUT_OF_BOUNDS"] = 4] = "OUT_OF_BOUNDS";
|
|
20
20
|
})(SetFailureEnum = exports.SetFailureEnum || (exports.SetFailureEnum = {}));
|
|
21
21
|
class Set extends in_play_event_1.InPlayEvent {
|
|
22
|
-
constructor({
|
|
23
|
-
super({
|
|
22
|
+
constructor({ score, player, target, failure, type, eventType, modifier, activeTraits }) {
|
|
23
|
+
super({ score, player, target, eventType, modifier, activeTraits });
|
|
24
24
|
this.type = type;
|
|
25
25
|
this.failure = failure;
|
|
26
26
|
}
|
|
@@ -42,7 +42,7 @@ class Set extends in_play_event_1.InPlayEvent {
|
|
|
42
42
|
return score;
|
|
43
43
|
}
|
|
44
44
|
toString() {
|
|
45
|
-
return `{
|
|
45
|
+
return `{score:${this.score},player:${this.player},target:${this.target},failure:${this.failure},type:${this.type},modifier:${this.modifier},eventType:${this.eventType},activeTraits:[${this.activeTraits.join(',')}]}`;
|
|
46
46
|
}
|
|
47
47
|
}
|
|
48
48
|
exports.Set = Set;
|
|
@@ -22,7 +22,7 @@ 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({ 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
27
|
toString(): string;
|
|
28
28
|
}
|
|
@@ -21,8 +21,8 @@ var SpikeFailureEnum;
|
|
|
21
21
|
SpikeFailureEnum[SpikeFailureEnum["NET"] = 4] = "NET";
|
|
22
22
|
})(SpikeFailureEnum = exports.SpikeFailureEnum || (exports.SpikeFailureEnum = {}));
|
|
23
23
|
class Spike extends in_play_event_1.InPlayEvent {
|
|
24
|
-
constructor({
|
|
25
|
-
super({
|
|
24
|
+
constructor({ score, player, target, failure, type, eventType, modifier, activeTraits }) {
|
|
25
|
+
super({ score, player, target, eventType, modifier, activeTraits });
|
|
26
26
|
this.type = type;
|
|
27
27
|
this.failure = failure;
|
|
28
28
|
}
|
|
@@ -47,7 +47,7 @@ class Spike extends in_play_event_1.InPlayEvent {
|
|
|
47
47
|
return score;
|
|
48
48
|
}
|
|
49
49
|
toString() {
|
|
50
|
-
return `{
|
|
50
|
+
return `{score:${this.score},player:${this.player},target:${this.target},failure:${this.failure},type:${this.type},modifier:${this.modifier},eventType:${this.eventType},activeTraits:[${this.activeTraits.join(',')}]}`;
|
|
51
51
|
}
|
|
52
52
|
}
|
|
53
53
|
exports.Spike = Spike;
|
|
@@ -5,7 +5,7 @@ interface SubstitutionOpts extends RallyEventOpts {
|
|
|
5
5
|
}
|
|
6
6
|
export declare class Substitution extends RallyEvent {
|
|
7
7
|
readonly playerOut: string;
|
|
8
|
-
constructor({
|
|
8
|
+
constructor({ playerOut, player, eventType }: SubstitutionOpts);
|
|
9
9
|
toString(): string;
|
|
10
10
|
}
|
|
11
11
|
export {};
|
|
@@ -3,12 +3,12 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.Substitution = void 0;
|
|
4
4
|
const rally_event_1 = require("./rally-event");
|
|
5
5
|
class Substitution extends rally_event_1.RallyEvent {
|
|
6
|
-
constructor({
|
|
7
|
-
super({ eventType, player
|
|
6
|
+
constructor({ playerOut, player, eventType }) {
|
|
7
|
+
super({ eventType, player });
|
|
8
8
|
this.playerOut = playerOut.id;
|
|
9
9
|
}
|
|
10
10
|
toString() {
|
|
11
|
-
return `{
|
|
11
|
+
return `{player:${this.player},playerOut:${this.playerOut},eventType:${this.eventType}}`;
|
|
12
12
|
}
|
|
13
13
|
}
|
|
14
14
|
exports.Substitution = Substitution;
|
|
@@ -32,42 +32,35 @@ function transformToAttributes(rally, setId) {
|
|
|
32
32
|
}
|
|
33
33
|
function transformToObject(model) {
|
|
34
34
|
const decompressed = JSON.parse(decompressFromBase64(model.events));
|
|
35
|
-
const
|
|
36
|
-
const substitutions = [];
|
|
37
|
-
const serves = [];
|
|
38
|
-
const receptions = [];
|
|
39
|
-
const sets = [];
|
|
40
|
-
const spikes = [];
|
|
41
|
-
const blocks = [];
|
|
35
|
+
const events = [];
|
|
42
36
|
decompressed.forEach(event => {
|
|
43
37
|
switch (event.event_type) {
|
|
44
38
|
case 0:
|
|
45
|
-
|
|
39
|
+
events.push(event);
|
|
46
40
|
break;
|
|
47
41
|
case 1:
|
|
48
|
-
|
|
42
|
+
events.push(event);
|
|
49
43
|
break;
|
|
50
44
|
case 2:
|
|
51
|
-
|
|
45
|
+
events.push(event);
|
|
52
46
|
break;
|
|
53
47
|
case 3:
|
|
54
|
-
|
|
48
|
+
events.push(event);
|
|
55
49
|
break;
|
|
56
50
|
case 4:
|
|
57
|
-
|
|
51
|
+
events.push(event);
|
|
58
52
|
break;
|
|
59
53
|
case 5:
|
|
60
|
-
|
|
54
|
+
events.push(event);
|
|
61
55
|
break;
|
|
62
56
|
case 6:
|
|
63
|
-
|
|
57
|
+
events.push(event);
|
|
64
58
|
break;
|
|
65
59
|
default:
|
|
66
60
|
throw new Error('UNKNOWN_EVENT');
|
|
67
61
|
}
|
|
62
|
+
events.push(event);
|
|
68
63
|
});
|
|
69
|
-
const events = [...liberoReplacements, ...substitutions, ...serves, ...receptions, ...sets, ...spikes, ...blocks]
|
|
70
|
-
.sort((e1, e2) => e1.order - e2.order);
|
|
71
64
|
return new Rally({
|
|
72
65
|
id: model.rally_id,
|
|
73
66
|
order: model.order,
|
|
@@ -77,42 +70,34 @@ function transformToObject(model) {
|
|
|
77
70
|
}
|
|
78
71
|
function transformToAPIObject(model) {
|
|
79
72
|
const decompressed = JSON.parse(decompressFromBase64(model.events));
|
|
80
|
-
const
|
|
81
|
-
const substitutions = [];
|
|
82
|
-
const serves = [];
|
|
83
|
-
const receptions = [];
|
|
84
|
-
const sets = [];
|
|
85
|
-
const spikes = [];
|
|
86
|
-
const blocks = [];
|
|
73
|
+
const events = [];
|
|
87
74
|
decompressed.forEach(event => {
|
|
88
75
|
switch (event.event_type) {
|
|
89
76
|
case 0:
|
|
90
|
-
|
|
77
|
+
events.push(transformToAPILiberoReplacement(event));
|
|
91
78
|
break;
|
|
92
79
|
case 1:
|
|
93
|
-
|
|
80
|
+
events.push(transformToAPISubstitution(event));
|
|
94
81
|
break;
|
|
95
82
|
case 2:
|
|
96
|
-
|
|
83
|
+
events.push(transformToAPIServe(event));
|
|
97
84
|
break;
|
|
98
85
|
case 3:
|
|
99
|
-
|
|
86
|
+
events.push(transformToAPIReception(event));
|
|
100
87
|
break;
|
|
101
88
|
case 4:
|
|
102
|
-
|
|
89
|
+
events.push(transformToAPISet(event));
|
|
103
90
|
break;
|
|
104
91
|
case 5:
|
|
105
|
-
|
|
92
|
+
events.push(transformToAPISpike(event));
|
|
106
93
|
break;
|
|
107
94
|
case 6:
|
|
108
|
-
|
|
95
|
+
events.push(transformToAPIBlock(event));
|
|
109
96
|
break;
|
|
110
97
|
default:
|
|
111
98
|
throw new Error('UNKNOWN_EVENT');
|
|
112
99
|
}
|
|
113
100
|
});
|
|
114
|
-
const events = [...liberoReplacements, ...substitutions, ...serves, ...receptions, ...sets, ...spikes, ...blocks]
|
|
115
|
-
.sort((e1, e2) => e1.order - e2.order);
|
|
116
101
|
return {
|
|
117
102
|
id: model.rally_id,
|
|
118
103
|
order: model.order,
|
|
@@ -23,7 +23,7 @@ export declare class Block extends InPlayEvent {
|
|
|
23
23
|
readonly failure: BlockFailureEnum;
|
|
24
24
|
readonly type: BlockTypeEnum;
|
|
25
25
|
readonly blockers: string[];
|
|
26
|
-
constructor({
|
|
26
|
+
constructor({ score, player, target, failure, type, modifier, eventType, blockers, activeTraits }: BlockOpts);
|
|
27
27
|
static getScore(blockers: Player[], modifier: number, activeTraits: Trait[]): number;
|
|
28
28
|
toString(): string;
|
|
29
29
|
}
|
|
@@ -17,8 +17,8 @@ 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({ score, player, target, failure, type, modifier, eventType, blockers, activeTraits }) {
|
|
21
|
+
super({ score, player, target, modifier, eventType, activeTraits });
|
|
22
22
|
this.type = type;
|
|
23
23
|
this.failure = failure;
|
|
24
24
|
this.blockers = blockers.map(b => b.id);
|
|
@@ -59,6 +59,6 @@ export class Block extends InPlayEvent {
|
|
|
59
59
|
return score;
|
|
60
60
|
}
|
|
61
61
|
toString() {
|
|
62
|
-
return `{
|
|
62
|
+
return `{score:${this.score},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
63
|
}
|
|
64
64
|
}
|
|
@@ -14,6 +14,6 @@ export declare abstract class InPlayEvent extends RallyEvent {
|
|
|
14
14
|
readonly modifier: number;
|
|
15
15
|
readonly score: number;
|
|
16
16
|
readonly activeTraits: string[];
|
|
17
|
-
protected constructor({ eventType, player, target, modifier, score,
|
|
17
|
+
protected constructor({ eventType, player, target, modifier, score, activeTraits }: InPlayEventOpts);
|
|
18
18
|
protected static calculateScore(stats: PerformanceStats, eventType: string, type: string): number;
|
|
19
19
|
}
|
|
@@ -2,8 +2,8 @@ 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({ eventType, player, target, modifier, score,
|
|
6
|
-
super({
|
|
5
|
+
constructor({ eventType, player, target, modifier, score, activeTraits }) {
|
|
6
|
+
super({ player, eventType });
|
|
7
7
|
this.target = target;
|
|
8
8
|
this.score = score;
|
|
9
9
|
this.modifier = modifier;
|
|
@@ -12,7 +12,7 @@ export declare enum LiberoReplacementTypeEnum {
|
|
|
12
12
|
export declare class LiberoReplacement extends RallyEvent {
|
|
13
13
|
readonly type: LiberoReplacementTypeEnum;
|
|
14
14
|
readonly libero: string;
|
|
15
|
-
constructor({
|
|
15
|
+
constructor({ player, type, libero, eventType }: LiberoReplacementOpts);
|
|
16
16
|
toString(): string;
|
|
17
17
|
}
|
|
18
18
|
export {};
|
|
@@ -5,12 +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({ player, type, libero, eventType }) {
|
|
9
|
+
super({ player, eventType });
|
|
10
10
|
this.type = type;
|
|
11
11
|
this.libero = libero.id;
|
|
12
12
|
}
|
|
13
13
|
toString() {
|
|
14
|
-
return `{
|
|
14
|
+
return `{player:${this.player},type:${this.type},eventType:${this.eventType},libero:${this.libero}}`;
|
|
15
15
|
}
|
|
16
16
|
}
|
|
@@ -11,11 +11,9 @@ export declare enum EventTypeEnum {
|
|
|
11
11
|
export interface RallyEventOpts {
|
|
12
12
|
readonly player: Player;
|
|
13
13
|
readonly eventType: EventTypeEnum;
|
|
14
|
-
readonly order: number;
|
|
15
14
|
}
|
|
16
15
|
export declare abstract class RallyEvent {
|
|
17
|
-
readonly order: number;
|
|
18
16
|
readonly player: string;
|
|
19
17
|
readonly eventType: EventTypeEnum;
|
|
20
|
-
protected constructor({ eventType, player
|
|
18
|
+
protected constructor({ eventType, player }: RallyEventOpts);
|
|
21
19
|
}
|
|
@@ -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({ eventType, player
|
|
12
|
+
constructor({ eventType, player }) {
|
|
13
13
|
this.player = player.id;
|
|
14
|
-
this.order = order;
|
|
15
14
|
this.eventType = eventType;
|
|
16
15
|
}
|
|
17
16
|
}
|
|
@@ -20,7 +20,7 @@ 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({ score, player, target, failure, type, eventType, modifier, activeTraits }: ReceptionOpts);
|
|
24
24
|
static getScore(stats: PerformanceStats, type: ReceptionTypeEnum, modifier: number, activeTraits: Trait[]): number;
|
|
25
25
|
toString(): string;
|
|
26
26
|
}
|
|
@@ -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({ score, player, target, failure, type, eventType, modifier, activeTraits }) {
|
|
20
|
+
super({ score, player, target, eventType, modifier, activeTraits });
|
|
21
21
|
this.type = type;
|
|
22
22
|
this.failure = failure;
|
|
23
23
|
}
|
|
@@ -34,6 +34,6 @@ export class Reception extends InPlayEvent {
|
|
|
34
34
|
return score;
|
|
35
35
|
}
|
|
36
36
|
toString() {
|
|
37
|
-
return `{
|
|
37
|
+
return `{score:${this.score},player:${this.player},target:${this.target},failure:${this.failure},type:${this.type},modifier:${this.modifier},eventType:${this.eventType},activeTraits:[${this.activeTraits.join(',')}]}`;
|
|
38
38
|
}
|
|
39
39
|
}
|
|
@@ -21,7 +21,7 @@ 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({ score, player, target, failure, type, eventType, modifier, activeTraits }: ServeOpts);
|
|
25
25
|
static getScore(stats: PerformanceStats, type: ServeTypeEnum, modifier: number, activeTraits: Trait[]): number;
|
|
26
26
|
toString(): string;
|
|
27
27
|
}
|
|
@@ -16,8 +16,8 @@ export var ServeFailureEnum;
|
|
|
16
16
|
ServeFailureEnum[ServeFailureEnum["OUT_OF_BOUNDS"] = 4] = "OUT_OF_BOUNDS";
|
|
17
17
|
})(ServeFailureEnum || (ServeFailureEnum = {}));
|
|
18
18
|
export class Serve extends InPlayEvent {
|
|
19
|
-
constructor({
|
|
20
|
-
super({
|
|
19
|
+
constructor({ score, player, target, failure, type, eventType, modifier, activeTraits }) {
|
|
20
|
+
super({ score, player, target, eventType, modifier, activeTraits });
|
|
21
21
|
this.type = type;
|
|
22
22
|
this.failure = failure;
|
|
23
23
|
}
|
|
@@ -29,6 +29,6 @@ export class Serve extends InPlayEvent {
|
|
|
29
29
|
return score;
|
|
30
30
|
}
|
|
31
31
|
toString() {
|
|
32
|
-
return `{
|
|
32
|
+
return `{score:${this.score},player:${this.player},target:${this.target},failure:${this.failure},type:${this.type},modifier:${this.modifier},eventType:${this.eventType},activeTraits:[${this.activeTraits.join(',')}]}`;
|
|
33
33
|
}
|
|
34
34
|
}
|
|
@@ -20,7 +20,7 @@ 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({ score, player, target, failure, type, eventType, modifier, activeTraits }: SetOpts);
|
|
24
24
|
static getScore(stats: PerformanceStats, type: SetTypeEnum, modifier: number, activeTraits: Trait[]): number;
|
|
25
25
|
toString(): string;
|
|
26
26
|
}
|
|
@@ -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({ score, player, target, failure, type, eventType, modifier, activeTraits }) {
|
|
20
|
+
super({ score, player, target, eventType, modifier, activeTraits });
|
|
21
21
|
this.type = type;
|
|
22
22
|
this.failure = failure;
|
|
23
23
|
}
|
|
@@ -39,6 +39,6 @@ export class Set extends InPlayEvent {
|
|
|
39
39
|
return score;
|
|
40
40
|
}
|
|
41
41
|
toString() {
|
|
42
|
-
return `{
|
|
42
|
+
return `{score:${this.score},player:${this.player},target:${this.target},failure:${this.failure},type:${this.type},modifier:${this.modifier},eventType:${this.eventType},activeTraits:[${this.activeTraits.join(',')}]}`;
|
|
43
43
|
}
|
|
44
44
|
}
|
|
@@ -22,7 +22,7 @@ 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({ 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
27
|
toString(): string;
|
|
28
28
|
}
|
|
@@ -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({ score, player, target, failure, type, eventType, modifier, activeTraits }) {
|
|
22
|
+
super({ score, player, target, eventType, modifier, activeTraits });
|
|
23
23
|
this.type = type;
|
|
24
24
|
this.failure = failure;
|
|
25
25
|
}
|
|
@@ -44,6 +44,6 @@ export class Spike extends InPlayEvent {
|
|
|
44
44
|
return score;
|
|
45
45
|
}
|
|
46
46
|
toString() {
|
|
47
|
-
return `{
|
|
47
|
+
return `{score:${this.score},player:${this.player},target:${this.target},failure:${this.failure},type:${this.type},modifier:${this.modifier},eventType:${this.eventType},activeTraits:[${this.activeTraits.join(',')}]}`;
|
|
48
48
|
}
|
|
49
49
|
}
|
|
@@ -5,7 +5,7 @@ interface SubstitutionOpts extends RallyEventOpts {
|
|
|
5
5
|
}
|
|
6
6
|
export declare class Substitution extends RallyEvent {
|
|
7
7
|
readonly playerOut: string;
|
|
8
|
-
constructor({
|
|
8
|
+
constructor({ playerOut, player, eventType }: SubstitutionOpts);
|
|
9
9
|
toString(): string;
|
|
10
10
|
}
|
|
11
11
|
export {};
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { RallyEvent } from './rally-event';
|
|
2
2
|
export class Substitution extends RallyEvent {
|
|
3
|
-
constructor({
|
|
4
|
-
super({ eventType, player
|
|
3
|
+
constructor({ playerOut, player, eventType }) {
|
|
4
|
+
super({ eventType, player });
|
|
5
5
|
this.playerOut = playerOut.id;
|
|
6
6
|
}
|
|
7
7
|
toString() {
|
|
8
|
-
return `{
|
|
8
|
+
return `{player:${this.player},playerOut:${this.playerOut},eventType:${this.eventType}}`;
|
|
9
9
|
}
|
|
10
10
|
}
|