volleyballsimtypes 0.0.83 → 0.0.85
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/player.d.ts +2 -7
- package/dist/cjs/src/api/player.js +0 -10
- package/dist/cjs/src/data/init-models.js +66 -0
- package/dist/cjs/src/data/models/block.d.ts +24 -2
- package/dist/cjs/src/data/models/event-trait.d.ts +23 -0
- package/dist/cjs/src/data/models/event-trait.js +42 -0
- package/dist/cjs/src/data/models/event.d.ts +12 -1
- package/dist/cjs/src/data/models/index.d.ts +3 -0
- package/dist/cjs/src/data/models/index.js +3 -0
- package/dist/cjs/src/data/models/match.d.ts +1 -1
- package/dist/cjs/src/data/models/player-trait.d.ts +23 -0
- package/dist/cjs/src/data/models/player-trait.js +42 -0
- package/dist/cjs/src/data/models/player.d.ts +14 -7
- package/dist/cjs/src/data/models/player.js +0 -4
- package/dist/cjs/src/data/models/reception.d.ts +24 -2
- package/dist/cjs/src/data/models/season-match.d.ts +1 -1
- package/dist/cjs/src/data/models/season.d.ts +3 -3
- package/dist/cjs/src/data/models/serve.d.ts +24 -2
- package/dist/cjs/src/data/models/set.d.ts +24 -2
- package/dist/cjs/src/data/models/spike.d.ts +24 -2
- package/dist/cjs/src/data/models/team.d.ts +1 -1
- package/dist/cjs/src/data/models/tournament.d.ts +1 -1
- package/dist/cjs/src/data/models/trait.d.ts +70 -0
- package/dist/cjs/src/data/models/trait.js +50 -0
- package/dist/cjs/src/data/transformers/player.js +2 -3
- package/dist/cjs/src/data/transformers/trait.d.ts +5 -5
- package/dist/cjs/src/data/transformers/trait.js +18 -26
- package/dist/cjs/src/service/match/match-set.d.ts +1 -1
- package/dist/cjs/src/service/match/rally.d.ts +1 -1
- package/dist/cjs/src/service/player/trait.d.ts +2 -3
- package/dist/cjs/src/service/player/trait.js +10 -12
- package/dist/cjs/src/service/team/team.d.ts +1 -1
- package/dist/esm/src/api/player.d.ts +2 -7
- package/dist/esm/src/api/player.js +1 -9
- package/dist/esm/src/data/init-models.js +67 -1
- package/dist/esm/src/data/models/block.d.ts +24 -2
- package/dist/esm/src/data/models/event-trait.d.ts +23 -0
- package/dist/esm/src/data/models/event-trait.js +38 -0
- package/dist/esm/src/data/models/event.d.ts +12 -1
- package/dist/esm/src/data/models/index.d.ts +3 -0
- package/dist/esm/src/data/models/index.js +3 -0
- package/dist/esm/src/data/models/match.d.ts +1 -1
- package/dist/esm/src/data/models/player-trait.d.ts +23 -0
- package/dist/esm/src/data/models/player-trait.js +38 -0
- package/dist/esm/src/data/models/player.d.ts +14 -7
- package/dist/esm/src/data/models/player.js +0 -4
- package/dist/esm/src/data/models/reception.d.ts +24 -2
- package/dist/esm/src/data/models/season-match.d.ts +1 -1
- package/dist/esm/src/data/models/season.d.ts +3 -3
- package/dist/esm/src/data/models/serve.d.ts +24 -2
- package/dist/esm/src/data/models/set.d.ts +24 -2
- package/dist/esm/src/data/models/spike.d.ts +24 -2
- package/dist/esm/src/data/models/team.d.ts +1 -1
- package/dist/esm/src/data/models/tournament.d.ts +1 -1
- package/dist/esm/src/data/models/trait.d.ts +70 -0
- package/dist/esm/src/data/models/trait.js +46 -0
- package/dist/esm/src/data/transformers/player.js +3 -4
- package/dist/esm/src/data/transformers/trait.d.ts +5 -5
- package/dist/esm/src/data/transformers/trait.js +15 -23
- package/dist/esm/src/service/match/match-set.d.ts +1 -1
- package/dist/esm/src/service/match/rally.d.ts +1 -1
- package/dist/esm/src/service/player/trait.d.ts +2 -3
- package/dist/esm/src/service/player/trait.js +10 -12
- package/dist/esm/src/service/team/team.d.ts +1 -1
- package/package.json +1 -1
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import * as Sequelize from 'sequelize';
|
|
2
2
|
import { Model } from 'sequelize';
|
|
3
|
-
import { CourtTarget, EventType, PlayerId, PlayerModel, RallyId, RallyModel,
|
|
3
|
+
import { CourtTarget, EventTraitAttributes, EventTraitId, EventTraitModel, EventType, PlayerId, PlayerModel, RallyId, RallyModel, TraitId, TraitModel } from '.';
|
|
4
4
|
export interface SetAttributes {
|
|
5
5
|
event_id: string;
|
|
6
6
|
rally_id: string;
|
|
@@ -12,6 +12,7 @@ export interface SetAttributes {
|
|
|
12
12
|
player_id: string;
|
|
13
13
|
modifier: number;
|
|
14
14
|
score: number;
|
|
15
|
+
EventTraits?: EventTraitAttributes[];
|
|
15
16
|
}
|
|
16
17
|
export type SetFailure = 'NO_FAILURE' | 'FAULT' | 'MISS' | 'OUT_OF_BOUNDS' | 'BAD_PASS';
|
|
17
18
|
export type SetType = 'OVERHAND' | 'UNDERHAND' | 'SPIKE' | 'DUMP';
|
|
@@ -29,7 +30,6 @@ export declare class SetModel extends Model<SetAttributes, SetCreationAttributes
|
|
|
29
30
|
player_id: string;
|
|
30
31
|
modifier: number;
|
|
31
32
|
score: number;
|
|
32
|
-
active_traits: TraitType[];
|
|
33
33
|
player: PlayerModel;
|
|
34
34
|
getPlayer: Sequelize.BelongsToGetAssociationMixin<PlayerModel>;
|
|
35
35
|
setPlayer: Sequelize.BelongsToSetAssociationMixin<PlayerModel, PlayerId>;
|
|
@@ -38,5 +38,27 @@ export declare class SetModel extends Model<SetAttributes, SetCreationAttributes
|
|
|
38
38
|
getRally: Sequelize.BelongsToGetAssociationMixin<RallyModel>;
|
|
39
39
|
setRally: Sequelize.BelongsToSetAssociationMixin<RallyModel, RallyId>;
|
|
40
40
|
createRally: Sequelize.BelongsToCreateAssociationMixin<RallyModel>;
|
|
41
|
+
Traits: TraitModel[];
|
|
42
|
+
getTraits: Sequelize.BelongsToManyGetAssociationsMixin<TraitModel>;
|
|
43
|
+
setTraits: Sequelize.BelongsToManySetAssociationsMixin<TraitModel, TraitId>;
|
|
44
|
+
addTrait: Sequelize.BelongsToManyAddAssociationMixin<TraitModel, TraitId>;
|
|
45
|
+
addTraits: Sequelize.BelongsToManyAddAssociationsMixin<TraitModel, TraitId>;
|
|
46
|
+
createTrait: Sequelize.BelongsToManyCreateAssociationMixin<TraitModel>;
|
|
47
|
+
removeTrait: Sequelize.BelongsToManyRemoveAssociationMixin<TraitModel, TraitId>;
|
|
48
|
+
removeTraits: Sequelize.BelongsToManyRemoveAssociationsMixin<TraitModel, TraitId>;
|
|
49
|
+
hasTrait: Sequelize.BelongsToManyHasAssociationMixin<TraitModel, TraitId>;
|
|
50
|
+
hasTraits: Sequelize.BelongsToManyHasAssociationsMixin<TraitModel, TraitId>;
|
|
51
|
+
countTraits: Sequelize.BelongsToManyCountAssociationsMixin;
|
|
52
|
+
EventTraits: EventTraitModel[];
|
|
53
|
+
getEventTraits: Sequelize.HasManyGetAssociationsMixin<EventTraitModel>;
|
|
54
|
+
setEventTraits: Sequelize.HasManySetAssociationsMixin<EventTraitModel, EventTraitId>;
|
|
55
|
+
addEventTrait: Sequelize.HasManyAddAssociationMixin<EventTraitModel, EventTraitId>;
|
|
56
|
+
addEventTraits: Sequelize.HasManyAddAssociationsMixin<EventTraitModel, EventTraitId>;
|
|
57
|
+
createEventTrait: Sequelize.HasManyCreateAssociationMixin<EventTraitModel>;
|
|
58
|
+
removeEventTrait: Sequelize.HasManyRemoveAssociationMixin<EventTraitModel, EventTraitId>;
|
|
59
|
+
removeEventTraits: Sequelize.HasManyRemoveAssociationsMixin<EventTraitModel, EventTraitId>;
|
|
60
|
+
hasEventTrait: Sequelize.HasManyHasAssociationMixin<EventTraitModel, EventTraitId>;
|
|
61
|
+
hasEventTraits: Sequelize.HasManyHasAssociationsMixin<EventTraitModel, EventTraitId>;
|
|
62
|
+
countEventTraits: Sequelize.HasManyCountAssociationsMixin;
|
|
41
63
|
static initModel(sequelize: Sequelize.Sequelize): typeof SetModel;
|
|
42
64
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import * as Sequelize from 'sequelize';
|
|
2
2
|
import { Model } from 'sequelize';
|
|
3
|
-
import { CourtTarget, EventType, PlayerId, PlayerModel, RallyId, RallyModel,
|
|
3
|
+
import { CourtTarget, EventTraitAttributes, EventTraitId, EventTraitModel, EventType, PlayerId, PlayerModel, RallyId, RallyModel, TraitId, TraitModel } from '.';
|
|
4
4
|
export interface SpikeAttributes {
|
|
5
5
|
event_id: string;
|
|
6
6
|
rally_id: string;
|
|
@@ -12,6 +12,7 @@ export interface SpikeAttributes {
|
|
|
12
12
|
player_id: string;
|
|
13
13
|
modifier: number;
|
|
14
14
|
score: number;
|
|
15
|
+
EventTraits?: EventTraitAttributes[];
|
|
15
16
|
}
|
|
16
17
|
export type SpikeType = 'CROSS_SHOT' | 'LINE_SHOT' | 'TOOL_SHOT' | 'TIP' | 'DOWN_BALL' | 'OVERHAND';
|
|
17
18
|
export type SpikeFailure = 'NO_FAILURE' | 'FAULT' | 'MISS' | 'OUT_OF_BOUNDS' | 'NET';
|
|
@@ -29,7 +30,6 @@ export declare class SpikeModel extends Model<SpikeAttributes, SpikeCreationAttr
|
|
|
29
30
|
player_id: string;
|
|
30
31
|
modifier: number;
|
|
31
32
|
score: number;
|
|
32
|
-
active_traits: TraitType[];
|
|
33
33
|
player: PlayerModel;
|
|
34
34
|
getPlayer: Sequelize.BelongsToGetAssociationMixin<PlayerModel>;
|
|
35
35
|
setPlayer: Sequelize.BelongsToSetAssociationMixin<PlayerModel, PlayerId>;
|
|
@@ -38,5 +38,27 @@ export declare class SpikeModel extends Model<SpikeAttributes, SpikeCreationAttr
|
|
|
38
38
|
getRally: Sequelize.BelongsToGetAssociationMixin<RallyModel>;
|
|
39
39
|
setRally: Sequelize.BelongsToSetAssociationMixin<RallyModel, RallyId>;
|
|
40
40
|
createRally: Sequelize.BelongsToCreateAssociationMixin<RallyModel>;
|
|
41
|
+
Traits: TraitModel[];
|
|
42
|
+
getTraits: Sequelize.BelongsToManyGetAssociationsMixin<TraitModel>;
|
|
43
|
+
setTraits: Sequelize.BelongsToManySetAssociationsMixin<TraitModel, TraitId>;
|
|
44
|
+
addTrait: Sequelize.BelongsToManyAddAssociationMixin<TraitModel, TraitId>;
|
|
45
|
+
addTraits: Sequelize.BelongsToManyAddAssociationsMixin<TraitModel, TraitId>;
|
|
46
|
+
createTrait: Sequelize.BelongsToManyCreateAssociationMixin<TraitModel>;
|
|
47
|
+
removeTrait: Sequelize.BelongsToManyRemoveAssociationMixin<TraitModel, TraitId>;
|
|
48
|
+
removeTraits: Sequelize.BelongsToManyRemoveAssociationsMixin<TraitModel, TraitId>;
|
|
49
|
+
hasTrait: Sequelize.BelongsToManyHasAssociationMixin<TraitModel, TraitId>;
|
|
50
|
+
hasTraits: Sequelize.BelongsToManyHasAssociationsMixin<TraitModel, TraitId>;
|
|
51
|
+
countTraits: Sequelize.BelongsToManyCountAssociationsMixin;
|
|
52
|
+
EventTraits: EventTraitModel[];
|
|
53
|
+
getEventTraits: Sequelize.HasManyGetAssociationsMixin<EventTraitModel>;
|
|
54
|
+
setEventTraits: Sequelize.HasManySetAssociationsMixin<EventTraitModel, EventTraitId>;
|
|
55
|
+
addEventTrait: Sequelize.HasManyAddAssociationMixin<EventTraitModel, EventTraitId>;
|
|
56
|
+
addEventTraits: Sequelize.HasManyAddAssociationsMixin<EventTraitModel, EventTraitId>;
|
|
57
|
+
createEventTrait: Sequelize.HasManyCreateAssociationMixin<EventTraitModel>;
|
|
58
|
+
removeEventTrait: Sequelize.HasManyRemoveAssociationMixin<EventTraitModel, EventTraitId>;
|
|
59
|
+
removeEventTraits: Sequelize.HasManyRemoveAssociationsMixin<EventTraitModel, EventTraitId>;
|
|
60
|
+
hasEventTrait: Sequelize.HasManyHasAssociationMixin<EventTraitModel, EventTraitId>;
|
|
61
|
+
hasEventTraits: Sequelize.HasManyHasAssociationsMixin<EventTraitModel, EventTraitId>;
|
|
62
|
+
countEventTraits: Sequelize.HasManyCountAssociationsMixin;
|
|
41
63
|
static initModel(sequelize: Sequelize.Sequelize): typeof SpikeModel;
|
|
42
64
|
}
|
|
@@ -26,6 +26,7 @@ export declare class TeamModel extends Model<TeamAttributes, TeamCreationAttribu
|
|
|
26
26
|
league_id: string;
|
|
27
27
|
country_id: string;
|
|
28
28
|
coach: CoachModel;
|
|
29
|
+
league: LeagueModel;
|
|
29
30
|
getCoach: Sequelize.BelongsToGetAssociationMixin<CoachModel>;
|
|
30
31
|
setCoach: Sequelize.BelongsToSetAssociationMixin<CoachModel, CoachId>;
|
|
31
32
|
createCoach: Sequelize.BelongsToCreateAssociationMixin<CoachModel>;
|
|
@@ -33,7 +34,6 @@ export declare class TeamModel extends Model<TeamAttributes, TeamCreationAttribu
|
|
|
33
34
|
getCountry: Sequelize.BelongsToGetAssociationMixin<CountryModel>;
|
|
34
35
|
setCountry: Sequelize.BelongsToSetAssociationMixin<CountryModel, CountryId>;
|
|
35
36
|
createCountry: Sequelize.BelongsToCreateAssociationMixin<CountryModel>;
|
|
36
|
-
league: LeagueModel;
|
|
37
37
|
getLeague: Sequelize.BelongsToGetAssociationMixin<LeagueModel>;
|
|
38
38
|
setLeague: Sequelize.BelongsToSetAssociationMixin<LeagueModel, LeagueId>;
|
|
39
39
|
createLeague: Sequelize.BelongsToCreateAssociationMixin<LeagueModel>;
|
|
@@ -17,6 +17,7 @@ export declare class TournamentModel extends Model<TournamentAttributes, Tournam
|
|
|
17
17
|
tournament_id: string;
|
|
18
18
|
iteration: number;
|
|
19
19
|
champion?: string;
|
|
20
|
+
TournamentMatches: TournamentMatchModel[];
|
|
20
21
|
tournamentTeams: TeamModel[];
|
|
21
22
|
Iteration: IterationModel;
|
|
22
23
|
getIteration: Sequelize.BelongsToGetAssociationMixin<IterationModel>;
|
|
@@ -26,7 +27,6 @@ export declare class TournamentModel extends Model<TournamentAttributes, Tournam
|
|
|
26
27
|
getChampion: Sequelize.BelongsToGetAssociationMixin<TeamModel>;
|
|
27
28
|
setChampion: Sequelize.BelongsToSetAssociationMixin<TeamModel, TeamId>;
|
|
28
29
|
createChampion: Sequelize.BelongsToCreateAssociationMixin<TeamModel>;
|
|
29
|
-
TournamentMatches: TournamentMatchModel[];
|
|
30
30
|
getTournamentMatches: Sequelize.HasManyGetAssociationsMixin<TournamentMatchModel>;
|
|
31
31
|
setTournamentMatches: Sequelize.HasManySetAssociationsMixin<TournamentMatchModel, TournamentMatchId>;
|
|
32
32
|
addTournamentMatch: Sequelize.HasManyAddAssociationMixin<TournamentMatchModel, TournamentMatchId>;
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
import * as Sequelize from 'sequelize';
|
|
2
|
+
import { Model } from 'sequelize';
|
|
3
|
+
import { EventId, EventModel, EventTraitId, EventTraitModel, PlayerId, PlayerModel, PlayerTraitId, PlayerTraitModel } from '.';
|
|
4
|
+
export interface TraitAttributes {
|
|
5
|
+
trait_id: string;
|
|
6
|
+
name: string;
|
|
7
|
+
modifier: number;
|
|
8
|
+
chance: number;
|
|
9
|
+
threshold: number;
|
|
10
|
+
weight: number;
|
|
11
|
+
general_stat: GeneralStatType;
|
|
12
|
+
}
|
|
13
|
+
export type TraitPk = 'trait_id';
|
|
14
|
+
export type TraitId = TraitModel[TraitPk];
|
|
15
|
+
export type TraitCreationAttributes = TraitAttributes;
|
|
16
|
+
export type GeneralStatType = 'Attack' | 'Defense' | 'Physical' | 'Serve';
|
|
17
|
+
export declare class TraitModel extends Model<TraitAttributes, TraitCreationAttributes> implements TraitAttributes {
|
|
18
|
+
trait_id: string;
|
|
19
|
+
name: string;
|
|
20
|
+
modifier: number;
|
|
21
|
+
chance: number;
|
|
22
|
+
threshold: number;
|
|
23
|
+
weight: number;
|
|
24
|
+
general_stat: GeneralStatType;
|
|
25
|
+
Events: EventModel[];
|
|
26
|
+
getEvents: Sequelize.BelongsToManyGetAssociationsMixin<EventModel>;
|
|
27
|
+
setEvents: Sequelize.BelongsToManySetAssociationsMixin<EventModel, EventId>;
|
|
28
|
+
addEvent: Sequelize.BelongsToManyAddAssociationMixin<EventModel, EventId>;
|
|
29
|
+
addEvents: Sequelize.BelongsToManyAddAssociationsMixin<EventModel, EventId>;
|
|
30
|
+
createEvent: Sequelize.BelongsToManyCreateAssociationMixin<EventModel>;
|
|
31
|
+
removeEvent: Sequelize.BelongsToManyRemoveAssociationMixin<EventModel, EventId>;
|
|
32
|
+
removeEvents: Sequelize.BelongsToManyRemoveAssociationsMixin<EventModel, EventId>;
|
|
33
|
+
hasEvent: Sequelize.BelongsToManyHasAssociationMixin<EventModel, EventId>;
|
|
34
|
+
hasEvents: Sequelize.BelongsToManyHasAssociationsMixin<EventModel, EventId>;
|
|
35
|
+
countEvents: Sequelize.BelongsToManyCountAssociationsMixin;
|
|
36
|
+
EventTraits: EventTraitModel[];
|
|
37
|
+
getEventTraits: Sequelize.HasManyGetAssociationsMixin<EventTraitModel>;
|
|
38
|
+
setEventTraits: Sequelize.HasManySetAssociationsMixin<EventTraitModel, EventTraitId>;
|
|
39
|
+
addEventTrait: Sequelize.HasManyAddAssociationMixin<EventTraitModel, EventTraitId>;
|
|
40
|
+
addEventTraits: Sequelize.HasManyAddAssociationsMixin<EventTraitModel, EventTraitId>;
|
|
41
|
+
createEventTrait: Sequelize.HasManyCreateAssociationMixin<EventTraitModel>;
|
|
42
|
+
removeEventTrait: Sequelize.HasManyRemoveAssociationMixin<EventTraitModel, EventTraitId>;
|
|
43
|
+
removeEventTraits: Sequelize.HasManyRemoveAssociationsMixin<EventTraitModel, EventTraitId>;
|
|
44
|
+
hasEventTrait: Sequelize.HasManyHasAssociationMixin<EventTraitModel, EventTraitId>;
|
|
45
|
+
hasEventTraits: Sequelize.HasManyHasAssociationsMixin<EventTraitModel, EventTraitId>;
|
|
46
|
+
countEventTraits: Sequelize.HasManyCountAssociationsMixin;
|
|
47
|
+
Players: PlayerModel[];
|
|
48
|
+
getPlayers: Sequelize.BelongsToManyGetAssociationsMixin<PlayerModel>;
|
|
49
|
+
setPlayers: Sequelize.BelongsToManySetAssociationsMixin<PlayerModel, PlayerId>;
|
|
50
|
+
addPlayer: Sequelize.BelongsToManyAddAssociationMixin<PlayerModel, PlayerId>;
|
|
51
|
+
addPlayers: Sequelize.BelongsToManyAddAssociationsMixin<PlayerModel, PlayerId>;
|
|
52
|
+
createPlayer: Sequelize.BelongsToManyCreateAssociationMixin<PlayerModel>;
|
|
53
|
+
removePlayer: Sequelize.BelongsToManyRemoveAssociationMixin<PlayerModel, PlayerId>;
|
|
54
|
+
removePlayers: Sequelize.BelongsToManyRemoveAssociationsMixin<PlayerModel, PlayerId>;
|
|
55
|
+
hasPlayer: Sequelize.BelongsToManyHasAssociationMixin<PlayerModel, PlayerId>;
|
|
56
|
+
hasPlayers: Sequelize.BelongsToManyHasAssociationsMixin<PlayerModel, PlayerId>;
|
|
57
|
+
countPlayers: Sequelize.BelongsToManyCountAssociationsMixin;
|
|
58
|
+
PlayerTraits: PlayerTraitModel[];
|
|
59
|
+
getPlayerTraits: Sequelize.HasManyGetAssociationsMixin<PlayerTraitModel>;
|
|
60
|
+
setPlayerTraits: Sequelize.HasManySetAssociationsMixin<PlayerTraitModel, PlayerTraitId>;
|
|
61
|
+
addPlayerTrait: Sequelize.HasManyAddAssociationMixin<PlayerTraitModel, PlayerTraitId>;
|
|
62
|
+
addPlayerTraits: Sequelize.HasManyAddAssociationsMixin<PlayerTraitModel, PlayerTraitId>;
|
|
63
|
+
createPlayerTrait: Sequelize.HasManyCreateAssociationMixin<PlayerTraitModel>;
|
|
64
|
+
removePlayerTrait: Sequelize.HasManyRemoveAssociationMixin<PlayerTraitModel, PlayerTraitId>;
|
|
65
|
+
removePlayerTraits: Sequelize.HasManyRemoveAssociationsMixin<PlayerTraitModel, PlayerTraitId>;
|
|
66
|
+
hasPlayerTrait: Sequelize.HasManyHasAssociationMixin<PlayerTraitModel, PlayerTraitId>;
|
|
67
|
+
hasPlayerTraits: Sequelize.HasManyHasAssociationsMixin<PlayerTraitModel, PlayerTraitId>;
|
|
68
|
+
countPlayerTraits: Sequelize.HasManyCountAssociationsMixin;
|
|
69
|
+
static initModel(sequelize: Sequelize.Sequelize): typeof TraitModel;
|
|
70
|
+
}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import { DataTypes, Model } from 'sequelize';
|
|
2
|
+
export class TraitModel extends Model {
|
|
3
|
+
static initModel(sequelize) {
|
|
4
|
+
return TraitModel.init({
|
|
5
|
+
trait_id: {
|
|
6
|
+
type: DataTypes.UUID,
|
|
7
|
+
allowNull: false,
|
|
8
|
+
primaryKey: true
|
|
9
|
+
},
|
|
10
|
+
name: {
|
|
11
|
+
type: DataTypes.STRING,
|
|
12
|
+
allowNull: false
|
|
13
|
+
},
|
|
14
|
+
modifier: {
|
|
15
|
+
type: DataTypes.REAL,
|
|
16
|
+
allowNull: false
|
|
17
|
+
},
|
|
18
|
+
chance: {
|
|
19
|
+
type: DataTypes.REAL,
|
|
20
|
+
allowNull: false
|
|
21
|
+
},
|
|
22
|
+
threshold: {
|
|
23
|
+
type: DataTypes.INTEGER,
|
|
24
|
+
allowNull: false
|
|
25
|
+
},
|
|
26
|
+
weight: {
|
|
27
|
+
type: DataTypes.INTEGER,
|
|
28
|
+
allowNull: false
|
|
29
|
+
},
|
|
30
|
+
general_stat: {
|
|
31
|
+
type: DataTypes.ENUM('Attack', 'Defense', 'Physical', 'Serve'),
|
|
32
|
+
allowNull: false
|
|
33
|
+
}
|
|
34
|
+
}, {
|
|
35
|
+
sequelize,
|
|
36
|
+
tableName: 'Trait',
|
|
37
|
+
schema: 'public',
|
|
38
|
+
timestamps: false,
|
|
39
|
+
indexes: [{
|
|
40
|
+
name: 'trait_pk',
|
|
41
|
+
unique: true,
|
|
42
|
+
fields: [{ name: 'trait_id' }]
|
|
43
|
+
}]
|
|
44
|
+
});
|
|
45
|
+
}
|
|
46
|
+
}
|
|
@@ -1,12 +1,11 @@
|
|
|
1
1
|
import { GeneralStat, Player } from '../../service';
|
|
2
|
-
import { transformFromPerformanceStats, transformFromRole,
|
|
2
|
+
import { transformFromPerformanceStats, transformFromRole, transformToAPIMatchSetStats, transformToAPITrait, transformToCountry, transformToPerformanceStats, transformToRole, transformToTrait } from '.';
|
|
3
3
|
function transformToAttributes(player) {
|
|
4
4
|
return {
|
|
5
5
|
player_id: player.id,
|
|
6
6
|
country_id: player.country.id,
|
|
7
7
|
first_name: player.name.first,
|
|
8
8
|
last_name: player.name.last,
|
|
9
|
-
traits: player.traits.map(transformFromTrait),
|
|
10
9
|
roles: player.roles.map(transformFromRole),
|
|
11
10
|
PerformanceStat: transformFromPerformanceStats(player)
|
|
12
11
|
};
|
|
@@ -20,7 +19,7 @@ function transformToObject(model) {
|
|
|
20
19
|
},
|
|
21
20
|
country: transformToCountry(model.country),
|
|
22
21
|
roles: model.roles.map(transformToRole),
|
|
23
|
-
traits: model.
|
|
22
|
+
traits: model.Traits.map(transformToTrait),
|
|
24
23
|
stats: transformToPerformanceStats(model.PerformanceStat)
|
|
25
24
|
});
|
|
26
25
|
}
|
|
@@ -39,7 +38,7 @@ function transformToAPIObject(model) {
|
|
|
39
38
|
},
|
|
40
39
|
country: transformToCountry(model.country),
|
|
41
40
|
roles: model.roles.map(transformToRole),
|
|
42
|
-
traits: model.
|
|
41
|
+
traits: model.Traits.map(transformToAPITrait),
|
|
43
42
|
generalStats,
|
|
44
43
|
gameStats
|
|
45
44
|
};
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { Trait } from '../../service';
|
|
2
|
+
import { TraitAttributes, TraitModel } from '../models';
|
|
2
3
|
import { APITrait } from '../../api';
|
|
3
|
-
|
|
4
|
-
declare function
|
|
5
|
-
declare function
|
|
6
|
-
|
|
7
|
-
export { transformToType as transformFromTrait, transformFromType as transformToTrait, transformToEnum as transformToAPITrait };
|
|
4
|
+
declare function transformToAttributes(trait: Trait): TraitAttributes;
|
|
5
|
+
declare function transformToAPIObject(model: TraitModel): APITrait;
|
|
6
|
+
declare function transformToObject(model: TraitModel): Trait;
|
|
7
|
+
export { transformToObject as transformToTrait, transformToAPIObject as transformToAPITrait, transformToAttributes as transformFromTrait };
|
|
@@ -1,27 +1,19 @@
|
|
|
1
1
|
import { Trait } from '../../service';
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
return 'METEOR_SERVE';
|
|
13
|
-
case 'Vigorous':
|
|
14
|
-
return 'VIGOROUS';
|
|
15
|
-
case 'Guardian':
|
|
16
|
-
return 'GUARDIAN';
|
|
17
|
-
default:
|
|
18
|
-
throw new Error('UNKNOWN_TRAIT');
|
|
19
|
-
}
|
|
2
|
+
function transformToAttributes(trait) {
|
|
3
|
+
return {
|
|
4
|
+
trait_id: trait.id,
|
|
5
|
+
name: trait.name,
|
|
6
|
+
modifier: trait.modifier,
|
|
7
|
+
chance: trait.chance,
|
|
8
|
+
weight: trait.weight,
|
|
9
|
+
threshold: trait.statThreshold,
|
|
10
|
+
general_stat: trait.stat
|
|
11
|
+
};
|
|
20
12
|
}
|
|
21
|
-
function
|
|
22
|
-
return
|
|
13
|
+
function transformToAPIObject(model) {
|
|
14
|
+
return { name: model.name };
|
|
23
15
|
}
|
|
24
|
-
function
|
|
25
|
-
return
|
|
16
|
+
function transformToObject(model) {
|
|
17
|
+
return Trait.getTraits().find(trait => trait.id === model.trait_id);
|
|
26
18
|
}
|
|
27
|
-
export {
|
|
19
|
+
export { transformToObject as transformToTrait, transformToAPIObject as transformToAPITrait, transformToAttributes as transformFromTrait };
|
|
@@ -50,8 +50,8 @@ export declare class MatchSet {
|
|
|
50
50
|
private readonly scoreThreshold;
|
|
51
51
|
private homeScore;
|
|
52
52
|
private awayScore;
|
|
53
|
-
constructor({ id, order, isTieBreak, homeLibero, awayLibero, stats, rallies, homeScore, awayScore }: MatchSetOpts);
|
|
54
53
|
private _state;
|
|
54
|
+
constructor({ id, order, isTieBreak, homeLibero, awayLibero, stats, rallies, homeScore, awayScore }: MatchSetOpts);
|
|
55
55
|
get state(): MatchSetState;
|
|
56
56
|
getHomeScore(): number;
|
|
57
57
|
getAwayScore(): number;
|
|
@@ -30,8 +30,8 @@ export declare class Rally {
|
|
|
30
30
|
readonly homePlayerPosition: PlayerPosition[];
|
|
31
31
|
readonly awayPlayerPosition: PlayerPosition[];
|
|
32
32
|
readonly order: number;
|
|
33
|
-
constructor({ id, order, servingTeam, homePlayerPosition, awayPlayerPosition, events }: RallyOpts);
|
|
34
33
|
private _state;
|
|
34
|
+
constructor({ id, order, servingTeam, homePlayerPosition, awayPlayerPosition, events }: RallyOpts);
|
|
35
35
|
get state(): RallyState;
|
|
36
36
|
get score(): Score | undefined;
|
|
37
37
|
isOver(): boolean;
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import { Role } from './role';
|
|
2
1
|
import { GeneralStat } from './stats';
|
|
3
2
|
import { PerformanceStats } from './performance-stats';
|
|
4
3
|
export declare class Trait {
|
|
@@ -8,8 +7,8 @@ export declare class Trait {
|
|
|
8
7
|
static readonly METEOR_SERVE: Trait;
|
|
9
8
|
static readonly VIGOROUS: Trait;
|
|
10
9
|
static readonly GUARDIAN: Trait;
|
|
10
|
+
readonly id: string;
|
|
11
11
|
readonly name: string;
|
|
12
|
-
readonly roles: Role[];
|
|
13
12
|
readonly modifier: number;
|
|
14
13
|
readonly chance: number;
|
|
15
14
|
readonly statThreshold: number;
|
|
@@ -17,5 +16,5 @@ export declare class Trait {
|
|
|
17
16
|
readonly weight: number;
|
|
18
17
|
private constructor();
|
|
19
18
|
static getTraits(): Trait[];
|
|
20
|
-
static assignTraits(
|
|
19
|
+
static assignTraits(performanceStats: PerformanceStats): Trait[];
|
|
21
20
|
}
|
|
@@ -1,9 +1,8 @@
|
|
|
1
|
-
import { Role } from './role';
|
|
2
1
|
import { GeneralStat } from './stats';
|
|
3
2
|
export class Trait {
|
|
4
|
-
constructor({
|
|
3
|
+
constructor({ id, name, modifier, chance, statThreshold, stat, weight }) {
|
|
4
|
+
this.id = id;
|
|
5
5
|
this.name = name;
|
|
6
|
-
this.roles = roles;
|
|
7
6
|
this.modifier = modifier;
|
|
8
7
|
this.chance = chance;
|
|
9
8
|
this.statThreshold = statThreshold;
|
|
@@ -13,10 +12,9 @@ export class Trait {
|
|
|
13
12
|
static getTraits() {
|
|
14
13
|
return [Trait.GUARDIAN, Trait.MARKSMAN, Trait.METEOR_SERVE, Trait.VIGOROUS, Trait.MOVING_WALL, Trait.MASTER_MIND];
|
|
15
14
|
}
|
|
16
|
-
static assignTraits(
|
|
15
|
+
static assignTraits(performanceStats) {
|
|
17
16
|
const qualifiedTraits = this.getTraits().filter(trait => {
|
|
18
|
-
return (trait.
|
|
19
|
-
GeneralStat.calculateScore(performanceStats, trait.stat) >= trait.statThreshold;
|
|
17
|
+
return GeneralStat.calculateScore(performanceStats, trait.stat) >= trait.statThreshold;
|
|
20
18
|
});
|
|
21
19
|
const random = Math.random();
|
|
22
20
|
let traitCount;
|
|
@@ -40,8 +38,8 @@ export class Trait {
|
|
|
40
38
|
// A Setter gets a bonus to their score and the receiving attacker gets a bonus as well.
|
|
41
39
|
// Stacks with attacker bonus
|
|
42
40
|
Trait.MASTER_MIND = new Trait({
|
|
41
|
+
id: '0117a315-a743-43e3-9ec2-ad5cf700ef08',
|
|
43
42
|
name: 'Master Mind',
|
|
44
|
-
roles: [Role.SETTER],
|
|
45
43
|
modifier: 1.25,
|
|
46
44
|
chance: 0.2,
|
|
47
45
|
statThreshold: 80,
|
|
@@ -50,8 +48,8 @@ Trait.MASTER_MIND = new Trait({
|
|
|
50
48
|
});
|
|
51
49
|
// Will always participate in blocking regardless of chance and adds
|
|
52
50
|
Trait.MOVING_WALL = new Trait({
|
|
51
|
+
id: '304c53f6-5e7a-44d3-9625-f10d8109421a',
|
|
53
52
|
name: 'Moving Wall',
|
|
54
|
-
roles: [Role.MIDDLE_BLOCKER, Role.DEFENSIVE_SPECIALIST],
|
|
55
53
|
modifier: 1.1,
|
|
56
54
|
chance: 1,
|
|
57
55
|
statThreshold: 75,
|
|
@@ -60,8 +58,8 @@ Trait.MOVING_WALL = new Trait({
|
|
|
60
58
|
});
|
|
61
59
|
// On attack, will always pick the worst receiver and adds a 10% to score
|
|
62
60
|
Trait.MARKSMAN = new Trait({
|
|
61
|
+
id: 'ace3458e-69ab-487c-a9c0-d656f705d8dd',
|
|
63
62
|
name: 'Marksman',
|
|
64
|
-
roles: [Role.OUTSIDE_HITTER, Role.OPPOSITE_HITTER, Role.SETTER],
|
|
65
63
|
modifier: 1.1,
|
|
66
64
|
chance: 0.3,
|
|
67
65
|
statThreshold: 75,
|
|
@@ -70,8 +68,8 @@ Trait.MARKSMAN = new Trait({
|
|
|
70
68
|
});
|
|
71
69
|
// Increases the score of the serve by 25% when serve type is Jumping.
|
|
72
70
|
Trait.METEOR_SERVE = new Trait({
|
|
71
|
+
id: 'c929a79d-5866-40d6-bbd6-b0b67a929c4c',
|
|
73
72
|
name: 'Meteor Serve',
|
|
74
|
-
roles: [],
|
|
75
73
|
modifier: 1.25,
|
|
76
74
|
chance: 0.1,
|
|
77
75
|
statThreshold: 75,
|
|
@@ -80,8 +78,8 @@ Trait.METEOR_SERVE = new Trait({
|
|
|
80
78
|
});
|
|
81
79
|
// Has a 50% chance of taking an action without decreasing energy.
|
|
82
80
|
Trait.VIGOROUS = new Trait({
|
|
81
|
+
id: 'f9599b87-b3b2-49ce-8224-470f6fe6ed64',
|
|
83
82
|
name: 'Vigorous',
|
|
84
|
-
roles: [],
|
|
85
83
|
modifier: 1,
|
|
86
84
|
statThreshold: 60,
|
|
87
85
|
chance: 0.5,
|
|
@@ -90,8 +88,8 @@ Trait.VIGOROUS = new Trait({
|
|
|
90
88
|
});
|
|
91
89
|
// Takes place of the receiver and increases reception score by 25%, guaranteeing success. Can only trigger in back-row.
|
|
92
90
|
Trait.GUARDIAN = new Trait({
|
|
91
|
+
id: 'c3291953-9256-4559-b5a9-955ccb8f9a6f',
|
|
93
92
|
name: 'Guardian',
|
|
94
|
-
roles: [Role.DEFENSIVE_SPECIALIST, Role.LIBERO],
|
|
95
93
|
chance: 0.25,
|
|
96
94
|
statThreshold: 75,
|
|
97
95
|
modifier: 1.25,
|
|
@@ -20,8 +20,8 @@ export declare class Team {
|
|
|
20
20
|
readonly coach?: Coach;
|
|
21
21
|
readonly league?: League;
|
|
22
22
|
readonly country?: Country;
|
|
23
|
-
constructor({ id, rating, name, shortName, country, roster, coach, league }: TeamOpts);
|
|
24
23
|
private _rating;
|
|
24
|
+
constructor({ id, rating, name, shortName, country, roster, coach, league }: TeamOpts);
|
|
25
25
|
get rating(): number;
|
|
26
26
|
set rating(value: number);
|
|
27
27
|
isPlayerInRoster(player: Player): boolean;
|