volleyballsimtypes 0.0.160 → 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 -22
- 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 -4
- package/dist/cjs/src/service/player/index.js +0 -20
- 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 -22
- 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 -4
- package/dist/esm/src/service/player/index.js +0 -4
- 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
|
-
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 declare class PerformanceStats {
|
|
15
|
-
readonly setting: number;
|
|
16
|
-
readonly pass: number;
|
|
17
|
-
readonly reception: number;
|
|
18
|
-
readonly spike: number;
|
|
19
|
-
readonly backAttack: number;
|
|
20
|
-
readonly jump: number;
|
|
21
|
-
readonly block: number;
|
|
22
|
-
readonly awareness: number;
|
|
23
|
-
readonly serve: number;
|
|
24
|
-
readonly defense: number;
|
|
25
|
-
readonly stamina: number;
|
|
26
|
-
constructor(opts: PerformanceStatsParams);
|
|
27
|
-
toString(): string;
|
|
28
|
-
static fromAverage(average: number): PerformanceStats;
|
|
29
|
-
}
|
|
30
|
-
export {};
|
|
@@ -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];
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
import * as GeneralStat from '../../formula/stats';
|
|
2
|
-
import { PerformanceStats } from './performance-stats';
|
|
3
|
-
export declare class Trait {
|
|
4
|
-
static readonly MASTER_MIND: Trait;
|
|
5
|
-
static readonly MOVING_WALL: Trait;
|
|
6
|
-
static readonly MARKSMAN: Trait;
|
|
7
|
-
static readonly METEOR_SERVE: Trait;
|
|
8
|
-
static readonly VIGOROUS: Trait;
|
|
9
|
-
static readonly GUARDIAN: Trait;
|
|
10
|
-
readonly id: string;
|
|
11
|
-
readonly name: string;
|
|
12
|
-
readonly modifier: number;
|
|
13
|
-
readonly chance: number;
|
|
14
|
-
readonly statThreshold: number;
|
|
15
|
-
readonly stat: GeneralStat.Stats;
|
|
16
|
-
readonly weight: number;
|
|
17
|
-
private constructor();
|
|
18
|
-
static getTraits(): Trait[];
|
|
19
|
-
static assignTraits(performanceStats: PerformanceStats): Trait[];
|
|
20
|
-
toString(): string;
|
|
21
|
-
}
|