volleyballsimtypes 0.0.161 → 0.0.162
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/package.json +1 -1
- package/dist/cjs/src/data/common/events.d.ts +0 -82
- package/dist/cjs/src/data/common/events.js +0 -97
- package/dist/cjs/src/data/common/index.d.ts +0 -2
- package/dist/cjs/src/data/common/index.js +0 -18
- package/dist/cjs/src/data/common/status.d.ts +0 -8
- package/dist/cjs/src/data/common/status.js +0 -11
- package/dist/cjs/src/data/index.d.ts +0 -4
- package/dist/cjs/src/data/index.js +0 -22
- package/dist/cjs/src/data/init-models.d.ts +0 -2
- package/dist/cjs/src/data/init-models.js +0 -204
- package/dist/cjs/src/data/models/coach.d.ts +0 -40
- package/dist/cjs/src/data/models/coach.js +0 -55
- package/dist/cjs/src/data/models/competition-champion.d.ts +0 -23
- package/dist/cjs/src/data/models/competition-champion.js +0 -38
- package/dist/cjs/src/data/models/competition-match.d.ts +0 -29
- package/dist/cjs/src/data/models/competition-match.js +0 -46
- package/dist/cjs/src/data/models/competition-teams.d.ts +0 -23
- package/dist/cjs/src/data/models/competition-teams.js +0 -42
- package/dist/cjs/src/data/models/competition.d.ts +0 -70
- package/dist/cjs/src/data/models/competition.js +0 -44
- package/dist/cjs/src/data/models/country.d.ts +0 -61
- package/dist/cjs/src/data/models/country.js +0 -34
- package/dist/cjs/src/data/models/draft-pick.d.ts +0 -31
- package/dist/cjs/src/data/models/draft-pick.js +0 -50
- package/dist/cjs/src/data/models/draft.d.ts +0 -29
- package/dist/cjs/src/data/models/draft.js +0 -34
- package/dist/cjs/src/data/models/index.d.ts +0 -25
- package/dist/cjs/src/data/models/index.js +0 -41
- package/dist/cjs/src/data/models/iteration.d.ts +0 -26
- package/dist/cjs/src/data/models/iteration.js +0 -30
- package/dist/cjs/src/data/models/league-season.d.ts +0 -23
- package/dist/cjs/src/data/models/league-season.js +0 -38
- package/dist/cjs/src/data/models/league.d.ts +0 -44
- package/dist/cjs/src/data/models/league.js +0 -38
- package/dist/cjs/src/data/models/match-rating.d.ts +0 -27
- package/dist/cjs/src/data/models/match-rating.js +0 -52
- package/dist/cjs/src/data/models/match-result.d.ts +0 -27
- package/dist/cjs/src/data/models/match-result.js +0 -38
- package/dist/cjs/src/data/models/match-set-stats.d.ts +0 -58
- package/dist/cjs/src/data/models/match-set-stats.js +0 -127
- package/dist/cjs/src/data/models/match-set.d.ts +0 -85
- package/dist/cjs/src/data/models/match-set.js +0 -51
- package/dist/cjs/src/data/models/match.d.ts +0 -72
- package/dist/cjs/src/data/models/match.js +0 -52
- package/dist/cjs/src/data/models/performance-stats.d.ts +0 -40
- package/dist/cjs/src/data/models/performance-stats.js +0 -85
- package/dist/cjs/src/data/models/player-team.d.ts +0 -28
- package/dist/cjs/src/data/models/player-team.js +0 -52
- package/dist/cjs/src/data/models/player-trait.d.ts +0 -23
- package/dist/cjs/src/data/models/player-trait.js +0 -42
- package/dist/cjs/src/data/models/player.d.ts +0 -128
- package/dist/cjs/src/data/models/player.js +0 -51
- package/dist/cjs/src/data/models/rally.d.ts +0 -29
- package/dist/cjs/src/data/models/rally.js +0 -50
- package/dist/cjs/src/data/models/set-position.d.ts +0 -29
- package/dist/cjs/src/data/models/set-position.js +0 -50
- package/dist/cjs/src/data/models/team.d.ts +0 -162
- package/dist/cjs/src/data/models/team.js +0 -63
- package/dist/cjs/src/data/models/trait.d.ts +0 -37
- package/dist/cjs/src/data/models/trait.js +0 -30
- package/dist/cjs/src/data/models/user.d.ts +0 -22
- package/dist/cjs/src/data/models/user.js +0 -57
- package/dist/cjs/src/data/transformers/coach.d.ts +0 -5
- package/dist/cjs/src/data/transformers/coach.js +0 -29
- package/dist/cjs/src/data/transformers/country.d.ts +0 -5
- package/dist/cjs/src/data/transformers/country.js +0 -20
- package/dist/cjs/src/data/transformers/court-position.d.ts +0 -5
- package/dist/cjs/src/data/transformers/court-position.js +0 -31
- package/dist/cjs/src/data/transformers/draft-pick.d.ts +0 -5
- package/dist/cjs/src/data/transformers/draft-pick.js +0 -22
- package/dist/cjs/src/data/transformers/draft.d.ts +0 -5
- package/dist/cjs/src/data/transformers/draft.js +0 -23
- package/dist/cjs/src/data/transformers/formation.d.ts +0 -5
- package/dist/cjs/src/data/transformers/formation.js +0 -12
- package/dist/cjs/src/data/transformers/index.d.ts +0 -25
- package/dist/cjs/src/data/transformers/index.js +0 -41
- package/dist/cjs/src/data/transformers/iteration.d.ts +0 -5
- package/dist/cjs/src/data/transformers/iteration.js +0 -18
- package/dist/cjs/src/data/transformers/league.d.ts +0 -5
- package/dist/cjs/src/data/transformers/league.js +0 -27
- package/dist/cjs/src/data/transformers/match-rating.d.ts +0 -4
- package/dist/cjs/src/data/transformers/match-rating.js +0 -16
- package/dist/cjs/src/data/transformers/match-set-stats.d.ts +0 -5
- package/dist/cjs/src/data/transformers/match-set-stats.js +0 -61
- package/dist/cjs/src/data/transformers/match-set.d.ts +0 -5
- package/dist/cjs/src/data/transformers/match-set.js +0 -39
- package/dist/cjs/src/data/transformers/match.d.ts +0 -5
- package/dist/cjs/src/data/transformers/match.js +0 -32
- package/dist/cjs/src/data/transformers/performance-stats.d.ts +0 -5
- package/dist/cjs/src/data/transformers/performance-stats.js +0 -37
- package/dist/cjs/src/data/transformers/player-team.d.ts +0 -3
- package/dist/cjs/src/data/transformers/player-team.js +0 -12
- package/dist/cjs/src/data/transformers/player.d.ts +0 -5
- package/dist/cjs/src/data/transformers/player.js +0 -32
- package/dist/cjs/src/data/transformers/rally.d.ts +0 -5
- package/dist/cjs/src/data/transformers/rally.js +0 -27
- package/dist/cjs/src/data/transformers/role.d.ts +0 -5
- package/dist/cjs/src/data/transformers/role.js +0 -25
- package/dist/cjs/src/data/transformers/season-match.d.ts +0 -4
- package/dist/cjs/src/data/transformers/season-match.js +0 -16
- package/dist/cjs/src/data/transformers/season.d.ts +0 -5
- package/dist/cjs/src/data/transformers/season.js +0 -40
- package/dist/cjs/src/data/transformers/set-position.d.ts +0 -5
- package/dist/cjs/src/data/transformers/set-position.js +0 -20
- package/dist/cjs/src/data/transformers/stage.d.ts +0 -5
- package/dist/cjs/src/data/transformers/stage.js +0 -25
- package/dist/cjs/src/data/transformers/team.d.ts +0 -5
- package/dist/cjs/src/data/transformers/team.js +0 -30
- package/dist/cjs/src/data/transformers/tournament-match.d.ts +0 -5
- package/dist/cjs/src/data/transformers/tournament-match.js +0 -23
- package/dist/cjs/src/data/transformers/tournament.d.ts +0 -5
- package/dist/cjs/src/data/transformers/tournament.js +0 -42
- package/dist/cjs/src/data/transformers/trait.d.ts +0 -5
- package/dist/cjs/src/data/transformers/trait.js +0 -19
- package/dist/cjs/src/formula/event.formula.json +0 -125
- package/dist/cjs/src/formula/events.d.ts +0 -125
- package/dist/cjs/src/formula/events.js +0 -8
- package/dist/cjs/src/formula/index.d.ts +0 -3
- package/dist/cjs/src/formula/index.js +0 -19
- package/dist/cjs/src/formula/role.formula.json +0 -82
- package/dist/cjs/src/formula/roles.d.ts +0 -20
- package/dist/cjs/src/formula/roles.js +0 -9
- package/dist/cjs/src/formula/stat.formula.json +0 -66
- package/dist/cjs/src/formula/stats.d.ts +0 -10
- package/dist/cjs/src/formula/stats.js +0 -18
- package/dist/cjs/src/index.d.ts +0 -3
- package/dist/cjs/src/index.js +0 -19
- package/dist/cjs/src/service/coach/coach.d.ts +0 -19
- package/dist/cjs/src/service/coach/coach.js +0 -15
- package/dist/cjs/src/service/coach/formation.d.ts +0 -30
- package/dist/cjs/src/service/coach/formation.js +0 -123
- package/dist/cjs/src/service/coach/index.d.ts +0 -2
- package/dist/cjs/src/service/coach/index.js +0 -18
- package/dist/cjs/src/service/competition/index.d.ts +0 -11
- package/dist/cjs/src/service/competition/index.js +0 -29
- package/dist/cjs/src/service/competition/iteration.d.ts +0 -10
- package/dist/cjs/src/service/competition/iteration.js +0 -12
- package/dist/cjs/src/service/competition/league.d.ts +0 -16
- package/dist/cjs/src/service/competition/league.js +0 -12
- package/dist/cjs/src/service/competition/season.d.ts +0 -26
- package/dist/cjs/src/service/competition/season.js +0 -32
- package/dist/cjs/src/service/competition/stage.d.ts +0 -11
- package/dist/cjs/src/service/competition/stage.js +0 -27
- package/dist/cjs/src/service/competition/standing.d.ts +0 -28
- package/dist/cjs/src/service/competition/standing.js +0 -80
- package/dist/cjs/src/service/competition/tournament-match.d.ts +0 -14
- package/dist/cjs/src/service/competition/tournament-match.js +0 -13
- package/dist/cjs/src/service/competition/tournament.d.ts +0 -23
- package/dist/cjs/src/service/competition/tournament.js +0 -23
- package/dist/cjs/src/service/country/country.d.ts +0 -17
- package/dist/cjs/src/service/country/country.js +0 -22
- package/dist/cjs/src/service/country/index.d.ts +0 -1
- package/dist/cjs/src/service/country/index.js +0 -17
- package/dist/cjs/src/service/draft/draft-pick.d.ts +0 -14
- package/dist/cjs/src/service/draft/draft-pick.js +0 -11
- package/dist/cjs/src/service/draft/draft.d.ts +0 -15
- package/dist/cjs/src/service/draft/draft.js +0 -12
- package/dist/cjs/src/service/draft/index.d.ts +0 -2
- package/dist/cjs/src/service/draft/index.js +0 -18
- package/dist/cjs/src/service/event/index.d.ts +0 -1
- package/dist/cjs/src/service/event/index.js +0 -17
- package/dist/cjs/src/service/event/rally-event.d.ts +0 -11
- package/dist/cjs/src/service/event/rally-event.js +0 -10
- package/dist/cjs/src/service/index.d.ts +0 -9
- package/dist/cjs/src/service/index.js +0 -25
- package/dist/cjs/src/service/match/court-position.d.ts +0 -34
- package/dist/cjs/src/service/match/court-position.js +0 -70
- package/dist/cjs/src/service/match/index.d.ts +0 -6
- package/dist/cjs/src/service/match/index.js +0 -22
- package/dist/cjs/src/service/match/match-rating.d.ts +0 -35
- package/dist/cjs/src/service/match/match-rating.js +0 -65
- package/dist/cjs/src/service/match/match-set.d.ts +0 -65
- package/dist/cjs/src/service/match/match-set.js +0 -60
- package/dist/cjs/src/service/match/match-team.d.ts +0 -7
- package/dist/cjs/src/service/match/match-team.js +0 -20
- package/dist/cjs/src/service/match/match.d.ts +0 -44
- package/dist/cjs/src/service/match/match.js +0 -68
- package/dist/cjs/src/service/match/rally.d.ts +0 -22
- package/dist/cjs/src/service/match/rally.js +0 -17
- package/dist/cjs/src/service/player/index.d.ts +0 -5
- package/dist/cjs/src/service/player/index.js +0 -21
- package/dist/cjs/src/service/player/performance-stats.d.ts +0 -30
- package/dist/cjs/src/service/player/performance-stats.js +0 -38
- package/dist/cjs/src/service/player/player.d.ts +0 -49
- package/dist/cjs/src/service/player/player.js +0 -114
- package/dist/cjs/src/service/player/rarity.d.ts +0 -14
- package/dist/cjs/src/service/player/rarity.js +0 -18
- package/dist/cjs/src/service/player/role.d.ts +0 -16
- package/dist/cjs/src/service/player/role.js +0 -44
- package/dist/cjs/src/service/player/trait.d.ts +0 -21
- package/dist/cjs/src/service/player/trait.js +0 -135
- package/dist/cjs/src/service/team/index.d.ts +0 -1
- package/dist/cjs/src/service/team/index.js +0 -17
- package/dist/cjs/src/service/team/team.d.ts +0 -31
- package/dist/cjs/src/service/team/team.js +0 -36
- package/dist/cjs/src/service/utils/index.d.ts +0 -2
- package/dist/cjs/src/service/utils/index.js +0 -18
- package/dist/cjs/src/service/utils/object-utils.d.ts +0 -1
- package/dist/cjs/src/service/utils/object-utils.js +0 -4
- package/dist/cjs/src/service/utils/string-utils.d.ts +0 -2
- package/dist/cjs/src/service/utils/string-utils.js +0 -16
- package/dist/esm/src/data/common/events.d.ts +0 -82
- package/dist/esm/src/data/common/events.js +0 -94
- package/dist/esm/src/data/common/index.d.ts +0 -2
- package/dist/esm/src/data/common/index.js +0 -2
- package/dist/esm/src/data/common/status.d.ts +0 -8
- package/dist/esm/src/data/common/status.js +0 -8
- package/dist/esm/src/data/index.d.ts +0 -4
- package/dist/esm/src/data/index.js +0 -4
- package/dist/esm/src/data/init-models.d.ts +0 -2
- package/dist/esm/src/data/init-models.js +0 -200
- package/dist/esm/src/data/models/coach.d.ts +0 -40
- package/dist/esm/src/data/models/coach.js +0 -51
- package/dist/esm/src/data/models/competition-champion.d.ts +0 -23
- package/dist/esm/src/data/models/competition-champion.js +0 -34
- package/dist/esm/src/data/models/competition-match.d.ts +0 -29
- package/dist/esm/src/data/models/competition-match.js +0 -42
- package/dist/esm/src/data/models/competition-teams.d.ts +0 -23
- package/dist/esm/src/data/models/competition-teams.js +0 -38
- package/dist/esm/src/data/models/competition.d.ts +0 -70
- package/dist/esm/src/data/models/competition.js +0 -40
- package/dist/esm/src/data/models/country.d.ts +0 -61
- package/dist/esm/src/data/models/country.js +0 -30
- package/dist/esm/src/data/models/draft-pick.d.ts +0 -31
- package/dist/esm/src/data/models/draft-pick.js +0 -46
- package/dist/esm/src/data/models/draft.d.ts +0 -29
- package/dist/esm/src/data/models/draft.js +0 -30
- package/dist/esm/src/data/models/index.d.ts +0 -25
- package/dist/esm/src/data/models/index.js +0 -25
- package/dist/esm/src/data/models/iteration.d.ts +0 -26
- package/dist/esm/src/data/models/iteration.js +0 -26
- package/dist/esm/src/data/models/league-season.d.ts +0 -23
- package/dist/esm/src/data/models/league-season.js +0 -34
- package/dist/esm/src/data/models/league.d.ts +0 -44
- package/dist/esm/src/data/models/league.js +0 -34
- package/dist/esm/src/data/models/match-rating.d.ts +0 -27
- package/dist/esm/src/data/models/match-rating.js +0 -48
- package/dist/esm/src/data/models/match-result.d.ts +0 -27
- package/dist/esm/src/data/models/match-result.js +0 -34
- package/dist/esm/src/data/models/match-set-stats.d.ts +0 -58
- package/dist/esm/src/data/models/match-set-stats.js +0 -123
- package/dist/esm/src/data/models/match-set.d.ts +0 -85
- package/dist/esm/src/data/models/match-set.js +0 -47
- package/dist/esm/src/data/models/match.d.ts +0 -72
- package/dist/esm/src/data/models/match.js +0 -48
- package/dist/esm/src/data/models/performance-stats.d.ts +0 -40
- package/dist/esm/src/data/models/performance-stats.js +0 -81
- package/dist/esm/src/data/models/player-team.d.ts +0 -28
- package/dist/esm/src/data/models/player-team.js +0 -48
- package/dist/esm/src/data/models/player-trait.d.ts +0 -23
- package/dist/esm/src/data/models/player-trait.js +0 -38
- package/dist/esm/src/data/models/player.d.ts +0 -128
- package/dist/esm/src/data/models/player.js +0 -47
- package/dist/esm/src/data/models/rally.d.ts +0 -29
- package/dist/esm/src/data/models/rally.js +0 -46
- package/dist/esm/src/data/models/set-position.d.ts +0 -29
- package/dist/esm/src/data/models/set-position.js +0 -46
- package/dist/esm/src/data/models/team.d.ts +0 -162
- package/dist/esm/src/data/models/team.js +0 -59
- package/dist/esm/src/data/models/trait.d.ts +0 -37
- package/dist/esm/src/data/models/trait.js +0 -26
- package/dist/esm/src/data/models/user.d.ts +0 -22
- package/dist/esm/src/data/models/user.js +0 -53
- package/dist/esm/src/data/transformers/coach.d.ts +0 -5
- package/dist/esm/src/data/transformers/coach.js +0 -25
- package/dist/esm/src/data/transformers/country.d.ts +0 -5
- package/dist/esm/src/data/transformers/country.js +0 -16
- package/dist/esm/src/data/transformers/court-position.d.ts +0 -5
- package/dist/esm/src/data/transformers/court-position.js +0 -27
- package/dist/esm/src/data/transformers/draft-pick.d.ts +0 -5
- package/dist/esm/src/data/transformers/draft-pick.js +0 -18
- package/dist/esm/src/data/transformers/draft.d.ts +0 -5
- package/dist/esm/src/data/transformers/draft.js +0 -19
- package/dist/esm/src/data/transformers/formation.d.ts +0 -5
- package/dist/esm/src/data/transformers/formation.js +0 -8
- package/dist/esm/src/data/transformers/index.d.ts +0 -25
- package/dist/esm/src/data/transformers/index.js +0 -25
- package/dist/esm/src/data/transformers/iteration.d.ts +0 -5
- package/dist/esm/src/data/transformers/iteration.js +0 -14
- package/dist/esm/src/data/transformers/league.d.ts +0 -5
- package/dist/esm/src/data/transformers/league.js +0 -23
- package/dist/esm/src/data/transformers/match-rating.d.ts +0 -4
- package/dist/esm/src/data/transformers/match-rating.js +0 -13
- package/dist/esm/src/data/transformers/match-set-stats.d.ts +0 -5
- package/dist/esm/src/data/transformers/match-set-stats.js +0 -57
- package/dist/esm/src/data/transformers/match-set.d.ts +0 -5
- package/dist/esm/src/data/transformers/match-set.js +0 -35
- package/dist/esm/src/data/transformers/match.d.ts +0 -5
- package/dist/esm/src/data/transformers/match.js +0 -28
- package/dist/esm/src/data/transformers/performance-stats.d.ts +0 -5
- package/dist/esm/src/data/transformers/performance-stats.js +0 -33
- package/dist/esm/src/data/transformers/player-team.d.ts +0 -3
- package/dist/esm/src/data/transformers/player-team.js +0 -9
- package/dist/esm/src/data/transformers/player.d.ts +0 -5
- package/dist/esm/src/data/transformers/player.js +0 -28
- package/dist/esm/src/data/transformers/rally.d.ts +0 -5
- package/dist/esm/src/data/transformers/rally.js +0 -23
- package/dist/esm/src/data/transformers/role.d.ts +0 -5
- package/dist/esm/src/data/transformers/role.js +0 -21
- package/dist/esm/src/data/transformers/season-match.d.ts +0 -4
- package/dist/esm/src/data/transformers/season-match.js +0 -13
- package/dist/esm/src/data/transformers/season.d.ts +0 -5
- package/dist/esm/src/data/transformers/season.js +0 -36
- package/dist/esm/src/data/transformers/set-position.d.ts +0 -5
- package/dist/esm/src/data/transformers/set-position.js +0 -16
- package/dist/esm/src/data/transformers/stage.d.ts +0 -5
- package/dist/esm/src/data/transformers/stage.js +0 -21
- package/dist/esm/src/data/transformers/team.d.ts +0 -5
- package/dist/esm/src/data/transformers/team.js +0 -26
- package/dist/esm/src/data/transformers/tournament-match.d.ts +0 -5
- package/dist/esm/src/data/transformers/tournament-match.js +0 -19
- package/dist/esm/src/data/transformers/tournament.d.ts +0 -5
- package/dist/esm/src/data/transformers/tournament.js +0 -38
- package/dist/esm/src/data/transformers/trait.d.ts +0 -5
- package/dist/esm/src/data/transformers/trait.js +0 -15
- package/dist/esm/src/formula/event.formula.json +0 -125
- package/dist/esm/src/formula/events.d.ts +0 -125
- package/dist/esm/src/formula/events.js +0 -2
- package/dist/esm/src/formula/index.d.ts +0 -3
- package/dist/esm/src/formula/index.js +0 -3
- package/dist/esm/src/formula/role.formula.json +0 -82
- package/dist/esm/src/formula/roles.d.ts +0 -20
- package/dist/esm/src/formula/roles.js +0 -3
- package/dist/esm/src/formula/stat.formula.json +0 -66
- package/dist/esm/src/formula/stats.d.ts +0 -10
- package/dist/esm/src/formula/stats.js +0 -11
- package/dist/esm/src/index.d.ts +0 -3
- package/dist/esm/src/index.js +0 -3
- package/dist/esm/src/service/coach/coach.d.ts +0 -19
- package/dist/esm/src/service/coach/coach.js +0 -11
- package/dist/esm/src/service/coach/formation.d.ts +0 -30
- package/dist/esm/src/service/coach/formation.js +0 -119
- package/dist/esm/src/service/coach/index.d.ts +0 -2
- package/dist/esm/src/service/coach/index.js +0 -2
- package/dist/esm/src/service/competition/index.d.ts +0 -11
- package/dist/esm/src/service/competition/index.js +0 -12
- package/dist/esm/src/service/competition/iteration.d.ts +0 -10
- package/dist/esm/src/service/competition/iteration.js +0 -8
- package/dist/esm/src/service/competition/league.d.ts +0 -16
- package/dist/esm/src/service/competition/league.js +0 -8
- package/dist/esm/src/service/competition/season.d.ts +0 -26
- package/dist/esm/src/service/competition/season.js +0 -28
- package/dist/esm/src/service/competition/stage.d.ts +0 -11
- package/dist/esm/src/service/competition/stage.js +0 -24
- package/dist/esm/src/service/competition/standing.d.ts +0 -28
- package/dist/esm/src/service/competition/standing.js +0 -76
- package/dist/esm/src/service/competition/tournament-match.d.ts +0 -14
- package/dist/esm/src/service/competition/tournament-match.js +0 -9
- package/dist/esm/src/service/competition/tournament.d.ts +0 -23
- package/dist/esm/src/service/competition/tournament.js +0 -19
- package/dist/esm/src/service/country/country.d.ts +0 -17
- package/dist/esm/src/service/country/country.js +0 -18
- package/dist/esm/src/service/country/index.d.ts +0 -1
- package/dist/esm/src/service/country/index.js +0 -1
- package/dist/esm/src/service/draft/draft-pick.d.ts +0 -14
- package/dist/esm/src/service/draft/draft-pick.js +0 -7
- package/dist/esm/src/service/draft/draft.d.ts +0 -15
- package/dist/esm/src/service/draft/draft.js +0 -8
- package/dist/esm/src/service/draft/index.d.ts +0 -2
- package/dist/esm/src/service/draft/index.js +0 -2
- package/dist/esm/src/service/event/index.d.ts +0 -1
- package/dist/esm/src/service/event/index.js +0 -1
- package/dist/esm/src/service/event/rally-event.d.ts +0 -11
- package/dist/esm/src/service/event/rally-event.js +0 -6
- package/dist/esm/src/service/index.d.ts +0 -9
- package/dist/esm/src/service/index.js +0 -9
- package/dist/esm/src/service/match/court-position.d.ts +0 -34
- package/dist/esm/src/service/match/court-position.js +0 -62
- package/dist/esm/src/service/match/index.d.ts +0 -6
- package/dist/esm/src/service/match/index.js +0 -6
- package/dist/esm/src/service/match/match-rating.d.ts +0 -35
- package/dist/esm/src/service/match/match-rating.js +0 -61
- package/dist/esm/src/service/match/match-set.d.ts +0 -65
- package/dist/esm/src/service/match/match-set.js +0 -56
- package/dist/esm/src/service/match/match-team.d.ts +0 -7
- package/dist/esm/src/service/match/match-team.js +0 -17
- package/dist/esm/src/service/match/match.d.ts +0 -44
- package/dist/esm/src/service/match/match.js +0 -64
- package/dist/esm/src/service/match/rally.d.ts +0 -22
- package/dist/esm/src/service/match/rally.js +0 -13
- package/dist/esm/src/service/player/index.d.ts +0 -5
- package/dist/esm/src/service/player/index.js +0 -5
- package/dist/esm/src/service/player/performance-stats.d.ts +0 -30
- package/dist/esm/src/service/player/performance-stats.js +0 -34
- package/dist/esm/src/service/player/player.d.ts +0 -49
- package/dist/esm/src/service/player/player.js +0 -85
- package/dist/esm/src/service/player/rarity.d.ts +0 -14
- package/dist/esm/src/service/player/rarity.js +0 -15
- package/dist/esm/src/service/player/role.d.ts +0 -16
- package/dist/esm/src/service/player/role.js +0 -40
- package/dist/esm/src/service/player/trait.d.ts +0 -21
- package/dist/esm/src/service/player/trait.js +0 -108
- package/dist/esm/src/service/team/index.d.ts +0 -1
- package/dist/esm/src/service/team/index.js +0 -1
- package/dist/esm/src/service/team/team.d.ts +0 -31
- package/dist/esm/src/service/team/team.js +0 -32
- package/dist/esm/src/service/utils/index.d.ts +0 -2
- package/dist/esm/src/service/utils/index.js +0 -2
- package/dist/esm/src/service/utils/object-utils.d.ts +0 -1
- package/dist/esm/src/service/utils/object-utils.js +0 -1
- package/dist/esm/src/service/utils/string-utils.d.ts +0 -2
- package/dist/esm/src/service/utils/string-utils.js +0 -11
|
@@ -1,61 +0,0 @@
|
|
|
1
|
-
import { MatchScore } from '.';
|
|
2
|
-
export class MatchRating {
|
|
3
|
-
constructor({ match, competitionType }) {
|
|
4
|
-
this.match = match;
|
|
5
|
-
this.weight = MatchRating.MWF[competitionType];
|
|
6
|
-
}
|
|
7
|
-
getPoints(team) {
|
|
8
|
-
const rankingValue = MatchRating.SSV[this.match.getScore()] - this.getExpectedResult();
|
|
9
|
-
const weighted = rankingValue * this.weight / MatchRating.K;
|
|
10
|
-
if (this.match.isWinner(team))
|
|
11
|
-
return weighted;
|
|
12
|
-
else
|
|
13
|
-
return weighted * -1;
|
|
14
|
-
}
|
|
15
|
-
static calculateProbability(z) {
|
|
16
|
-
let area = 0.0;
|
|
17
|
-
const rectangles = 100000;
|
|
18
|
-
const width = (z - (-10)) / rectangles;
|
|
19
|
-
for (let i = 0; i < rectangles; i++) {
|
|
20
|
-
area += width * Math.exp(-Math.pow((width * i + (-10)), 2) / 2) / Math.sqrt(2 * Math.PI);
|
|
21
|
-
}
|
|
22
|
-
return area;
|
|
23
|
-
}
|
|
24
|
-
getExpectedResult() {
|
|
25
|
-
const D = MatchRating.K * (this.match.homeTeam.rating - this.match.awayTeam.rating) / 1000; // Strength difference between the teams
|
|
26
|
-
const P1 = MatchRating.calculateProbability(MatchRating.C1 + D); // 3-0
|
|
27
|
-
const P2 = MatchRating.calculateProbability(MatchRating.C2 + D) -
|
|
28
|
-
MatchRating.calculateProbability(MatchRating.C1 + D); // 3-1
|
|
29
|
-
const P3 = MatchRating.calculateProbability(MatchRating.C3 + D) -
|
|
30
|
-
MatchRating.calculateProbability(MatchRating.C2 + D); // 3-2
|
|
31
|
-
const P4 = MatchRating.calculateProbability(MatchRating.C4 + D) -
|
|
32
|
-
MatchRating.calculateProbability(MatchRating.C3 + D); // 2-3
|
|
33
|
-
const P5 = MatchRating.calculateProbability(MatchRating.C5 + D) -
|
|
34
|
-
MatchRating.calculateProbability(MatchRating.C4 + D); // 1-3
|
|
35
|
-
const P6 = 1 - MatchRating.calculateProbability(MatchRating.C5 + D); // 0-3
|
|
36
|
-
return P1 * MatchRating.SSV['3-0'] +
|
|
37
|
-
P2 * MatchRating.SSV['3-1'] +
|
|
38
|
-
P3 * MatchRating.SSV['3-2'] +
|
|
39
|
-
P4 * MatchRating.SSV['2-3'] +
|
|
40
|
-
P5 * MatchRating.SSV['1-3'] +
|
|
41
|
-
P6 * MatchRating.SSV['0-3']; // Expected Match Result EMR
|
|
42
|
-
}
|
|
43
|
-
}
|
|
44
|
-
MatchRating.K = 8; // Standard scaling factor
|
|
45
|
-
MatchRating.SSV = {
|
|
46
|
-
[MatchScore['3-0']]: 2,
|
|
47
|
-
[MatchScore['3-1']]: 1.5,
|
|
48
|
-
[MatchScore['3-2']]: 1,
|
|
49
|
-
[MatchScore['2-3']]: -1,
|
|
50
|
-
[MatchScore['1-3']]: -1.5,
|
|
51
|
-
[MatchScore['0-3']]: -2
|
|
52
|
-
};
|
|
53
|
-
MatchRating.C1 = -1.060;
|
|
54
|
-
MatchRating.C2 = -0.394;
|
|
55
|
-
MatchRating.C3 = 0;
|
|
56
|
-
MatchRating.C4 = 0.394;
|
|
57
|
-
MatchRating.C5 = 1.060;
|
|
58
|
-
MatchRating.MWF = {
|
|
59
|
-
TOURNAMENT: 50,
|
|
60
|
-
LEAGUE: 35
|
|
61
|
-
};
|
|
@@ -1,65 +0,0 @@
|
|
|
1
|
-
import { PlayerPosition, Rally } from './rally';
|
|
2
|
-
import { MatchTeam } from './match-team';
|
|
3
|
-
import { Player } from '../player';
|
|
4
|
-
declare enum ScoreThreshold {
|
|
5
|
-
SET = 25,
|
|
6
|
-
TIE_BREAK = 15
|
|
7
|
-
}
|
|
8
|
-
interface MatchSetParams {
|
|
9
|
-
readonly id: string;
|
|
10
|
-
readonly order: number;
|
|
11
|
-
readonly isTieBreak: boolean;
|
|
12
|
-
readonly homePlayerPosition: PlayerPosition[];
|
|
13
|
-
readonly awayPlayerPosition: PlayerPosition[];
|
|
14
|
-
readonly homeScore: number;
|
|
15
|
-
readonly awayScore: number;
|
|
16
|
-
readonly stats: SetStatistics[];
|
|
17
|
-
readonly rallies: Rally[];
|
|
18
|
-
}
|
|
19
|
-
export interface EventStat {
|
|
20
|
-
success: number;
|
|
21
|
-
error: number;
|
|
22
|
-
}
|
|
23
|
-
export interface SetStatistics {
|
|
24
|
-
player: Player;
|
|
25
|
-
ace: number;
|
|
26
|
-
attempts: number;
|
|
27
|
-
contacts: number;
|
|
28
|
-
ralliesPlayed: number;
|
|
29
|
-
serve: EventStat;
|
|
30
|
-
reception: EventStat;
|
|
31
|
-
set: EventStat;
|
|
32
|
-
attack: EventStat;
|
|
33
|
-
block: EventStat;
|
|
34
|
-
kills: number;
|
|
35
|
-
killBlocks: number;
|
|
36
|
-
assists: number;
|
|
37
|
-
}
|
|
38
|
-
export declare class MatchSet {
|
|
39
|
-
readonly id: string;
|
|
40
|
-
readonly order: number;
|
|
41
|
-
readonly isTieBreak: boolean;
|
|
42
|
-
readonly homePlayerPosition: PlayerPosition[];
|
|
43
|
-
readonly awayPlayerPosition: PlayerPosition[];
|
|
44
|
-
readonly stats: SetStatistics[];
|
|
45
|
-
readonly rallies: Rally[];
|
|
46
|
-
readonly scoreThreshold: ScoreThreshold;
|
|
47
|
-
private _homeScore;
|
|
48
|
-
private _awayScore;
|
|
49
|
-
constructor({ id, order, isTieBreak, homePlayerPosition, awayPlayerPosition, stats, rallies, homeScore, awayScore }: MatchSetParams);
|
|
50
|
-
get homeScore(): number;
|
|
51
|
-
get awayScore(): number;
|
|
52
|
-
increaseScore(team: MatchTeam): void;
|
|
53
|
-
addRally(rally: Rally): void;
|
|
54
|
-
/**
|
|
55
|
-
* Has a team reached at least 25 points and is the score difference between both teams at least 2?
|
|
56
|
-
* @returns boolean
|
|
57
|
-
*/
|
|
58
|
-
isOver(): boolean;
|
|
59
|
-
/**
|
|
60
|
-
* Get the team that won the Set. Return undefined if set is not over.
|
|
61
|
-
* @returns CourtTeam
|
|
62
|
-
*/
|
|
63
|
-
getWinner(): MatchTeam;
|
|
64
|
-
}
|
|
65
|
-
export {};
|
|
@@ -1,56 +0,0 @@
|
|
|
1
|
-
import { validateUUID } from '../utils';
|
|
2
|
-
import { MatchTeam } from './match-team';
|
|
3
|
-
var ScoreThreshold;
|
|
4
|
-
(function (ScoreThreshold) {
|
|
5
|
-
ScoreThreshold[ScoreThreshold["SET"] = 25] = "SET";
|
|
6
|
-
ScoreThreshold[ScoreThreshold["TIE_BREAK"] = 15] = "TIE_BREAK";
|
|
7
|
-
})(ScoreThreshold || (ScoreThreshold = {}));
|
|
8
|
-
export class MatchSet {
|
|
9
|
-
constructor({ id, order, isTieBreak, homePlayerPosition, awayPlayerPosition, stats, rallies, homeScore, awayScore }) {
|
|
10
|
-
validateUUID(id);
|
|
11
|
-
this.id = id;
|
|
12
|
-
this.order = order;
|
|
13
|
-
this._homeScore = homeScore;
|
|
14
|
-
this._awayScore = awayScore;
|
|
15
|
-
this.homePlayerPosition = homePlayerPosition;
|
|
16
|
-
this.awayPlayerPosition = awayPlayerPosition;
|
|
17
|
-
this.stats = stats;
|
|
18
|
-
this.rallies = rallies;
|
|
19
|
-
this.isTieBreak = isTieBreak;
|
|
20
|
-
this.scoreThreshold = isTieBreak ? ScoreThreshold.TIE_BREAK : ScoreThreshold.SET;
|
|
21
|
-
}
|
|
22
|
-
get homeScore() {
|
|
23
|
-
return this._homeScore;
|
|
24
|
-
}
|
|
25
|
-
get awayScore() {
|
|
26
|
-
return this._awayScore;
|
|
27
|
-
}
|
|
28
|
-
increaseScore(team) {
|
|
29
|
-
if (team === MatchTeam.HOME)
|
|
30
|
-
this._homeScore++;
|
|
31
|
-
else if (team === MatchTeam.AWAY)
|
|
32
|
-
this._awayScore++;
|
|
33
|
-
else
|
|
34
|
-
throw new Error('UNKNOWN_TEAM');
|
|
35
|
-
}
|
|
36
|
-
addRally(rally) {
|
|
37
|
-
this.rallies.push(rally);
|
|
38
|
-
}
|
|
39
|
-
/**
|
|
40
|
-
* Has a team reached at least 25 points and is the score difference between both teams at least 2?
|
|
41
|
-
* @returns boolean
|
|
42
|
-
*/
|
|
43
|
-
isOver() {
|
|
44
|
-
return Math.abs(this.homeScore - this.awayScore) > 1 &&
|
|
45
|
-
(this.homeScore >= this.scoreThreshold || this.awayScore >= this.scoreThreshold);
|
|
46
|
-
}
|
|
47
|
-
/**
|
|
48
|
-
* Get the team that won the Set. Return undefined if set is not over.
|
|
49
|
-
* @returns CourtTeam
|
|
50
|
-
*/
|
|
51
|
-
getWinner() {
|
|
52
|
-
if (!this.isOver())
|
|
53
|
-
throw new Error('UNFINISHED_SET');
|
|
54
|
-
return this.homeScore > this.awayScore ? MatchTeam.HOME : MatchTeam.AWAY;
|
|
55
|
-
}
|
|
56
|
-
}
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
export var MatchTeam;
|
|
2
|
-
(function (MatchTeam) {
|
|
3
|
-
MatchTeam["HOME"] = "homeTeam";
|
|
4
|
-
MatchTeam["AWAY"] = "awayTeam";
|
|
5
|
-
})(MatchTeam || (MatchTeam = {}));
|
|
6
|
-
// eslint-disable-next-line @typescript-eslint/no-namespace
|
|
7
|
-
(function (MatchTeam) {
|
|
8
|
-
function otherTeam(team) {
|
|
9
|
-
if (team === MatchTeam.HOME)
|
|
10
|
-
return MatchTeam.AWAY;
|
|
11
|
-
else if (team === MatchTeam.AWAY)
|
|
12
|
-
return MatchTeam.HOME;
|
|
13
|
-
else
|
|
14
|
-
throw new Error('UNKNOWN_MATCH_TEAM');
|
|
15
|
-
}
|
|
16
|
-
MatchTeam.otherTeam = otherTeam;
|
|
17
|
-
})(MatchTeam || (MatchTeam = {}));
|
|
@@ -1,44 +0,0 @@
|
|
|
1
|
-
import { MatchSet } from './match-set';
|
|
2
|
-
import { Team } from '../team';
|
|
3
|
-
import { MatchTeam } from './match-team';
|
|
4
|
-
import { StatusEnum } from '../../data';
|
|
5
|
-
interface MatchParams {
|
|
6
|
-
readonly id: string;
|
|
7
|
-
readonly homeTeam: Team;
|
|
8
|
-
readonly awayTeam: Team;
|
|
9
|
-
readonly scheduledDate: Date;
|
|
10
|
-
readonly sets: MatchSet[];
|
|
11
|
-
readonly status: StatusEnum;
|
|
12
|
-
readonly homeScore?: number;
|
|
13
|
-
readonly awayScore?: number;
|
|
14
|
-
readonly winner?: Team;
|
|
15
|
-
}
|
|
16
|
-
export declare enum MatchScore {
|
|
17
|
-
'3-0' = "3-0",
|
|
18
|
-
'3-1' = "3-1",
|
|
19
|
-
'3-2' = "3-2",
|
|
20
|
-
'2-3' = "2-3",
|
|
21
|
-
'1-3' = "1-3",
|
|
22
|
-
'0-3' = "0-3"
|
|
23
|
-
}
|
|
24
|
-
export declare class Match {
|
|
25
|
-
static readonly BEST_OF = 5;
|
|
26
|
-
readonly id: string;
|
|
27
|
-
readonly homeTeam: Team;
|
|
28
|
-
readonly awayTeam: Team;
|
|
29
|
-
readonly sets: MatchSet[];
|
|
30
|
-
readonly scheduledDate: Date;
|
|
31
|
-
readonly homeScore?: number;
|
|
32
|
-
readonly awayScore?: number;
|
|
33
|
-
readonly winner?: Team;
|
|
34
|
-
status: StatusEnum;
|
|
35
|
-
constructor({ id, homeTeam, awayTeam, scheduledDate, sets, status, homeScore, awayScore, winner }: MatchParams);
|
|
36
|
-
addSet(set: MatchSet): void;
|
|
37
|
-
getTeamSets(team: MatchTeam): number;
|
|
38
|
-
getScore(): MatchScore;
|
|
39
|
-
isOver(): boolean;
|
|
40
|
-
getWinner(): Team;
|
|
41
|
-
isWinner(team: MatchTeam): boolean;
|
|
42
|
-
isSimulated(): boolean;
|
|
43
|
-
}
|
|
44
|
-
export {};
|
|
@@ -1,64 +0,0 @@
|
|
|
1
|
-
import { validateUUID } from '../utils';
|
|
2
|
-
import { MatchTeam } from './match-team';
|
|
3
|
-
import { StatusEnum } from '../../data';
|
|
4
|
-
export var MatchScore;
|
|
5
|
-
(function (MatchScore) {
|
|
6
|
-
MatchScore["3-0"] = "3-0";
|
|
7
|
-
MatchScore["3-1"] = "3-1";
|
|
8
|
-
MatchScore["3-2"] = "3-2";
|
|
9
|
-
MatchScore["2-3"] = "2-3";
|
|
10
|
-
MatchScore["1-3"] = "1-3";
|
|
11
|
-
MatchScore["0-3"] = "0-3";
|
|
12
|
-
})(MatchScore || (MatchScore = {}));
|
|
13
|
-
export class Match {
|
|
14
|
-
constructor({ id, homeTeam, awayTeam, scheduledDate, sets, status, homeScore, awayScore, winner }) {
|
|
15
|
-
validateUUID(id);
|
|
16
|
-
this.id = id;
|
|
17
|
-
this.homeTeam = homeTeam;
|
|
18
|
-
this.awayTeam = awayTeam;
|
|
19
|
-
this.scheduledDate = scheduledDate;
|
|
20
|
-
this.sets = sets;
|
|
21
|
-
this.status = status;
|
|
22
|
-
this.homeScore = homeScore;
|
|
23
|
-
this.awayScore = awayScore;
|
|
24
|
-
this.winner = winner;
|
|
25
|
-
}
|
|
26
|
-
addSet(set) {
|
|
27
|
-
if (this.sets.length >= Match.BEST_OF)
|
|
28
|
-
throw new Error('SET_AMOUNT_EXCEEDED');
|
|
29
|
-
this.sets.push(set);
|
|
30
|
-
}
|
|
31
|
-
getTeamSets(team) {
|
|
32
|
-
return this.sets.reduce((sets, set) => sets + (!set.isOver() ? 0 : set.getWinner() === team ? 1 : 0), 0);
|
|
33
|
-
}
|
|
34
|
-
getScore() {
|
|
35
|
-
return `${this.getTeamSets(MatchTeam.HOME)}-${this.getTeamSets(MatchTeam.AWAY)}`;
|
|
36
|
-
}
|
|
37
|
-
isOver() {
|
|
38
|
-
const gamesRequired = Math.ceil(Match.BEST_OF / 2);
|
|
39
|
-
const lastSet = this.sets.at(-1);
|
|
40
|
-
if (lastSet == null || !lastSet.isOver() || this.sets.length < gamesRequired)
|
|
41
|
-
return false;
|
|
42
|
-
const homeSets = this.getTeamSets(MatchTeam.HOME);
|
|
43
|
-
const awaySets = this.getTeamSets(MatchTeam.AWAY);
|
|
44
|
-
// Check if any of the teams has enough sets to win.
|
|
45
|
-
return !(homeSets < gamesRequired && awaySets < gamesRequired);
|
|
46
|
-
}
|
|
47
|
-
getWinner() {
|
|
48
|
-
if (!this.isOver())
|
|
49
|
-
throw new Error('UNFINISHED_MATCH');
|
|
50
|
-
const homeSets = this.getTeamSets(MatchTeam.HOME);
|
|
51
|
-
const awaySets = this.getTeamSets(MatchTeam.AWAY);
|
|
52
|
-
return homeSets > awaySets ? this.homeTeam : this.awayTeam;
|
|
53
|
-
}
|
|
54
|
-
isWinner(team) {
|
|
55
|
-
if (team === MatchTeam.HOME && this.getWinner() === this.homeTeam)
|
|
56
|
-
return true;
|
|
57
|
-
else
|
|
58
|
-
return team === MatchTeam.AWAY && this.getWinner() === this.awayTeam;
|
|
59
|
-
}
|
|
60
|
-
isSimulated() {
|
|
61
|
-
return this.status === StatusEnum.COMPLETE;
|
|
62
|
-
}
|
|
63
|
-
}
|
|
64
|
-
Match.BEST_OF = 5;
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
import { Team } from '../team';
|
|
2
|
-
import { CourtPosition } from './court-position';
|
|
3
|
-
import { RallyEvent } from '../event';
|
|
4
|
-
interface RallyParams {
|
|
5
|
-
readonly id: string;
|
|
6
|
-
readonly order: number;
|
|
7
|
-
readonly servingTeam: Team;
|
|
8
|
-
readonly events: RallyEvent[];
|
|
9
|
-
}
|
|
10
|
-
export interface PlayerPosition {
|
|
11
|
-
position: CourtPosition;
|
|
12
|
-
playerId: string;
|
|
13
|
-
}
|
|
14
|
-
export declare class Rally {
|
|
15
|
-
readonly id: string;
|
|
16
|
-
readonly servingTeam: Team;
|
|
17
|
-
readonly events: RallyEvent[];
|
|
18
|
-
readonly order: number;
|
|
19
|
-
constructor({ id, order, servingTeam, events }: RallyParams);
|
|
20
|
-
addEvent(event: RallyEvent): void;
|
|
21
|
-
}
|
|
22
|
-
export {};
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
import { validateUUID } from '../utils';
|
|
2
|
-
export class Rally {
|
|
3
|
-
constructor({ id, order, servingTeam, events }) {
|
|
4
|
-
validateUUID(id);
|
|
5
|
-
this.id = id;
|
|
6
|
-
this.order = order;
|
|
7
|
-
this.servingTeam = servingTeam;
|
|
8
|
-
this.events = events;
|
|
9
|
-
}
|
|
10
|
-
addEvent(event) {
|
|
11
|
-
this.events.push(event);
|
|
12
|
-
}
|
|
13
|
-
}
|
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
export interface PerformanceStatsParams {
|
|
2
|
-
readonly setting: number;
|
|
3
|
-
readonly pass: number;
|
|
4
|
-
readonly reception: number;
|
|
5
|
-
readonly spike: number;
|
|
6
|
-
readonly backAttack: number;
|
|
7
|
-
readonly jump: number;
|
|
8
|
-
readonly block: number;
|
|
9
|
-
readonly awareness: number;
|
|
10
|
-
readonly serve: number;
|
|
11
|
-
readonly defense: number;
|
|
12
|
-
readonly stamina: number;
|
|
13
|
-
}
|
|
14
|
-
export type PerformanceStatsKey = keyof PerformanceStatsParams;
|
|
15
|
-
export declare class PerformanceStats {
|
|
16
|
-
readonly setting: number;
|
|
17
|
-
readonly pass: number;
|
|
18
|
-
readonly reception: number;
|
|
19
|
-
readonly spike: number;
|
|
20
|
-
readonly backAttack: number;
|
|
21
|
-
readonly jump: number;
|
|
22
|
-
readonly block: number;
|
|
23
|
-
readonly awareness: number;
|
|
24
|
-
readonly serve: number;
|
|
25
|
-
readonly defense: number;
|
|
26
|
-
readonly stamina: number;
|
|
27
|
-
constructor(opts: PerformanceStatsParams);
|
|
28
|
-
toString(): string;
|
|
29
|
-
static fromAverage(average: number): PerformanceStats;
|
|
30
|
-
}
|
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
import { getKeys } from '../utils';
|
|
2
|
-
export class PerformanceStats {
|
|
3
|
-
constructor(opts) {
|
|
4
|
-
this.serve = opts.serve;
|
|
5
|
-
this.pass = opts.pass;
|
|
6
|
-
this.setting = opts.setting;
|
|
7
|
-
this.reception = opts.reception;
|
|
8
|
-
this.spike = opts.spike;
|
|
9
|
-
this.backAttack = opts.backAttack;
|
|
10
|
-
this.jump = opts.jump;
|
|
11
|
-
this.block = opts.block;
|
|
12
|
-
this.awareness = opts.awareness;
|
|
13
|
-
this.defense = opts.defense;
|
|
14
|
-
this.stamina = opts.stamina;
|
|
15
|
-
}
|
|
16
|
-
toString() {
|
|
17
|
-
return getKeys(this).map(key => `${key}: ${this[key]}`).join(', ');
|
|
18
|
-
}
|
|
19
|
-
static fromAverage(average) {
|
|
20
|
-
return new PerformanceStats({
|
|
21
|
-
setting: average,
|
|
22
|
-
pass: average,
|
|
23
|
-
reception: average,
|
|
24
|
-
spike: average,
|
|
25
|
-
backAttack: average,
|
|
26
|
-
jump: average,
|
|
27
|
-
block: average,
|
|
28
|
-
awareness: average,
|
|
29
|
-
serve: average,
|
|
30
|
-
defense: average,
|
|
31
|
-
stamina: average
|
|
32
|
-
});
|
|
33
|
-
}
|
|
34
|
-
}
|
|
@@ -1,49 +0,0 @@
|
|
|
1
|
-
import { PerformanceStats } from './performance-stats';
|
|
2
|
-
import { Role } from './role';
|
|
3
|
-
import { Trait } from './trait';
|
|
4
|
-
import { Country } from '../country';
|
|
5
|
-
import * as GeneralStat from '../../formula/stats';
|
|
6
|
-
import { Rarity } from './rarity';
|
|
7
|
-
export declare class Stat {
|
|
8
|
-
readonly name: GeneralStat.Stats;
|
|
9
|
-
readonly value: number;
|
|
10
|
-
constructor({ name, value }: {
|
|
11
|
-
name: GeneralStat.Stats;
|
|
12
|
-
value: number;
|
|
13
|
-
});
|
|
14
|
-
toString(): string;
|
|
15
|
-
}
|
|
16
|
-
interface PlayerParams {
|
|
17
|
-
readonly id: string;
|
|
18
|
-
readonly name: Name;
|
|
19
|
-
readonly country: Country;
|
|
20
|
-
readonly stats: PerformanceStats;
|
|
21
|
-
readonly roles: Role[];
|
|
22
|
-
readonly traits: Trait[];
|
|
23
|
-
readonly rarity: Rarity;
|
|
24
|
-
}
|
|
25
|
-
export declare class Name {
|
|
26
|
-
readonly first: string;
|
|
27
|
-
readonly last: string;
|
|
28
|
-
constructor({ first, last }: {
|
|
29
|
-
first: string;
|
|
30
|
-
last: string;
|
|
31
|
-
});
|
|
32
|
-
toString(): string;
|
|
33
|
-
}
|
|
34
|
-
export declare class Player {
|
|
35
|
-
readonly id: string;
|
|
36
|
-
readonly name: Name;
|
|
37
|
-
readonly country: Country;
|
|
38
|
-
readonly stats: PerformanceStats;
|
|
39
|
-
readonly roles: Role[];
|
|
40
|
-
readonly traits: Trait[];
|
|
41
|
-
readonly generalStats: Stat[];
|
|
42
|
-
readonly rarity: Rarity;
|
|
43
|
-
constructor({ id, name, country, stats, roles, traits, rarity }: PlayerParams);
|
|
44
|
-
static sortPlayers(roles: Role[]): (p1: Player, p2: Player) => number;
|
|
45
|
-
static compareStats(p1: Player, p2: Player): number;
|
|
46
|
-
canPlayLibero(): boolean;
|
|
47
|
-
toString(): string;
|
|
48
|
-
}
|
|
49
|
-
export {};
|
|
@@ -1,85 +0,0 @@
|
|
|
1
|
-
import { Role } from './role';
|
|
2
|
-
import { validateUUID } from '../utils';
|
|
3
|
-
import * as GeneralStat from '../../formula/stats';
|
|
4
|
-
export class Stat {
|
|
5
|
-
constructor({ name, value }) {
|
|
6
|
-
this.name = name;
|
|
7
|
-
this.value = value;
|
|
8
|
-
}
|
|
9
|
-
toString() {
|
|
10
|
-
return `${this.name}: ${this.value}`;
|
|
11
|
-
}
|
|
12
|
-
}
|
|
13
|
-
export class Name {
|
|
14
|
-
constructor({ first, last }) {
|
|
15
|
-
this.first = first;
|
|
16
|
-
this.last = last;
|
|
17
|
-
}
|
|
18
|
-
toString() {
|
|
19
|
-
return `${this.first} ${this.last}`;
|
|
20
|
-
}
|
|
21
|
-
}
|
|
22
|
-
export class Player {
|
|
23
|
-
constructor({ id, name, country, stats, roles, traits, rarity }) {
|
|
24
|
-
validateUUID(id);
|
|
25
|
-
this.id = id;
|
|
26
|
-
this.name = name;
|
|
27
|
-
this.country = country;
|
|
28
|
-
this.stats = stats;
|
|
29
|
-
this.roles = roles;
|
|
30
|
-
this.traits = traits;
|
|
31
|
-
this.rarity = rarity;
|
|
32
|
-
this.generalStats = GeneralStat.ALL_STATS.map(stat => ({
|
|
33
|
-
name: stat,
|
|
34
|
-
value: GeneralStat.calculateScore(stats, stat)
|
|
35
|
-
}));
|
|
36
|
-
}
|
|
37
|
-
// Used as a base sorting function for players
|
|
38
|
-
static sortPlayers(roles) {
|
|
39
|
-
return (p1, p2) => roles.reduce((x, role) => {
|
|
40
|
-
const p2Score = Role.calculateScore(p2.stats, role);
|
|
41
|
-
const p1Score = Role.calculateScore(p1.stats, role);
|
|
42
|
-
return x + p2Score - p1Score;
|
|
43
|
-
}, 0);
|
|
44
|
-
}
|
|
45
|
-
static compareStats(p1, p2) {
|
|
46
|
-
const compareFn = (acc, current) => {
|
|
47
|
-
let x = current.value;
|
|
48
|
-
switch (current.name) {
|
|
49
|
-
case 'ATTACK':
|
|
50
|
-
x *= 0.35;
|
|
51
|
-
break;
|
|
52
|
-
case 'DEFENSE':
|
|
53
|
-
x *= 0.35;
|
|
54
|
-
break;
|
|
55
|
-
case 'SERVE':
|
|
56
|
-
x *= 0.2;
|
|
57
|
-
break;
|
|
58
|
-
case 'PHYSICAL':
|
|
59
|
-
x *= 0.1;
|
|
60
|
-
break;
|
|
61
|
-
default:
|
|
62
|
-
x *= 0;
|
|
63
|
-
}
|
|
64
|
-
return acc + x;
|
|
65
|
-
};
|
|
66
|
-
const s1 = p1.generalStats.reduce(compareFn, 0);
|
|
67
|
-
const s2 = p2.generalStats.reduce(compareFn, 0);
|
|
68
|
-
return s2 - s1;
|
|
69
|
-
}
|
|
70
|
-
canPlayLibero() {
|
|
71
|
-
return this.roles.includes(Role.LIBERO);
|
|
72
|
-
}
|
|
73
|
-
toString() {
|
|
74
|
-
return JSON.stringify({
|
|
75
|
-
id: this.id,
|
|
76
|
-
name: this.name.toString(),
|
|
77
|
-
country: this.country.toString(),
|
|
78
|
-
stats: this.stats.toString(),
|
|
79
|
-
rarity: this.rarity,
|
|
80
|
-
roles: `[${this.roles.map(r => r.toString()).join(',')}]`,
|
|
81
|
-
traits: `[${this.traits.map(r => r.toString()).join(',')}]`,
|
|
82
|
-
generalStats: `[${this.generalStats.map(r => r.toString()).join(',')}]`
|
|
83
|
-
});
|
|
84
|
-
}
|
|
85
|
-
}
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
export declare enum Rarity {
|
|
2
|
-
COMMON = "COMMON",
|
|
3
|
-
RARE = "RARE",
|
|
4
|
-
LEGENDARY = "LEGENDARY",
|
|
5
|
-
MYTHIC = "MYTHIC",
|
|
6
|
-
SPECIAL = "SPECIAL"
|
|
7
|
-
}
|
|
8
|
-
export declare const RarityRanges: {
|
|
9
|
-
COMMON: number[];
|
|
10
|
-
RARE: number[];
|
|
11
|
-
LEGENDARY: number[];
|
|
12
|
-
MYTHIC: number[];
|
|
13
|
-
SPECIAL: number[];
|
|
14
|
-
};
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
export var Rarity;
|
|
2
|
-
(function (Rarity) {
|
|
3
|
-
Rarity["COMMON"] = "COMMON";
|
|
4
|
-
Rarity["RARE"] = "RARE";
|
|
5
|
-
Rarity["LEGENDARY"] = "LEGENDARY";
|
|
6
|
-
Rarity["MYTHIC"] = "MYTHIC";
|
|
7
|
-
Rarity["SPECIAL"] = "SPECIAL";
|
|
8
|
-
})(Rarity || (Rarity = {}));
|
|
9
|
-
export const RarityRanges = {
|
|
10
|
-
[Rarity.COMMON]: [0, 50],
|
|
11
|
-
[Rarity.RARE]: [51, 70],
|
|
12
|
-
[Rarity.LEGENDARY]: [71, 85],
|
|
13
|
-
[Rarity.MYTHIC]: [86, 98],
|
|
14
|
-
[Rarity.SPECIAL]: [99, 100]
|
|
15
|
-
};
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
import { Roles } from '../../formula';
|
|
2
|
-
import { PerformanceStats } from './performance-stats';
|
|
3
|
-
export declare class Role {
|
|
4
|
-
static readonly SETTER: Role;
|
|
5
|
-
static readonly LIBERO: Role;
|
|
6
|
-
static readonly OUTSIDE_HITTER: Role;
|
|
7
|
-
static readonly OPPOSITE_HITTER: Role;
|
|
8
|
-
static readonly MIDDLE_BLOCKER: Role;
|
|
9
|
-
private static readonly ROLES;
|
|
10
|
-
readonly name: Roles;
|
|
11
|
-
private constructor();
|
|
12
|
-
toString(): string;
|
|
13
|
-
static getRoles(): Role[];
|
|
14
|
-
static calculateScore(stats: PerformanceStats, role: Role): number;
|
|
15
|
-
static assignRoles(stats: PerformanceStats): Role[];
|
|
16
|
-
}
|
|
@@ -1,40 +0,0 @@
|
|
|
1
|
-
import { rolesFormula } from '../../formula';
|
|
2
|
-
export class Role {
|
|
3
|
-
constructor(name) {
|
|
4
|
-
this.name = name;
|
|
5
|
-
}
|
|
6
|
-
toString() {
|
|
7
|
-
return this.name;
|
|
8
|
-
}
|
|
9
|
-
static getRoles() {
|
|
10
|
-
return [...Role.ROLES];
|
|
11
|
-
}
|
|
12
|
-
static calculateScore(stats, role) {
|
|
13
|
-
const weights = rolesFormula.find(r => r.role === role.name);
|
|
14
|
-
if (weights == null)
|
|
15
|
-
throw new Error('COULD_NOT_FIND_ROLE_WEIGHT');
|
|
16
|
-
const score = Object.entries(weights.weight)
|
|
17
|
-
.reduce((score, [key, value]) => score + (stats[key] * weights.weight[key]), 0);
|
|
18
|
-
return Math.round(score);
|
|
19
|
-
}
|
|
20
|
-
static assignRoles(stats) {
|
|
21
|
-
const scores = this.getRoles().map(role => ({
|
|
22
|
-
role,
|
|
23
|
-
score: this.calculateScore(stats, role)
|
|
24
|
-
})).sort((x, y) => y.score - x.score);
|
|
25
|
-
const out = [scores[0].role];
|
|
26
|
-
if (scores[1].score >= 75) {
|
|
27
|
-
out.push(scores[1].role);
|
|
28
|
-
}
|
|
29
|
-
if (scores[2].score >= 85) {
|
|
30
|
-
out.push(scores[2].role);
|
|
31
|
-
}
|
|
32
|
-
return out;
|
|
33
|
-
}
|
|
34
|
-
}
|
|
35
|
-
Role.SETTER = new Role('SETTER');
|
|
36
|
-
Role.LIBERO = new Role('LIBERO');
|
|
37
|
-
Role.OUTSIDE_HITTER = new Role('OUTSIDE_HITTER');
|
|
38
|
-
Role.OPPOSITE_HITTER = new Role('OPPOSITE_HITTER');
|
|
39
|
-
Role.MIDDLE_BLOCKER = new Role('MIDDLE_BLOCKER');
|
|
40
|
-
Role.ROLES = [Role.LIBERO, Role.SETTER, Role.OPPOSITE_HITTER, Role.OUTSIDE_HITTER, Role.MIDDLE_BLOCKER];
|