volleyballsimtypes 0.0.74 → 0.0.76

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.
Files changed (149) hide show
  1. package/dist/cjs/src/api/events.d.ts +14 -14
  2. package/dist/cjs/src/api/index.d.ts +7 -8
  3. package/dist/cjs/src/api/index.js +21 -3
  4. package/dist/cjs/src/data/index.d.ts +4 -6
  5. package/dist/cjs/src/data/index.js +18 -93
  6. package/dist/cjs/src/data/models/index.d.ts +62 -64
  7. package/dist/cjs/src/data/models/index.js +33 -33
  8. package/dist/cjs/src/data/transformers/block.js +12 -12
  9. package/dist/cjs/src/data/transformers/court-target.d.ts +3 -3
  10. package/dist/cjs/src/data/transformers/court-target.js +14 -14
  11. package/dist/cjs/src/data/transformers/event-type.d.ts +3 -3
  12. package/dist/cjs/src/data/transformers/event-type.js +9 -9
  13. package/dist/cjs/src/data/transformers/index.d.ts +35 -36
  14. package/dist/cjs/src/data/transformers/index.js +49 -124
  15. package/dist/cjs/src/data/transformers/libero-replacement.js +3 -3
  16. package/dist/cjs/src/data/transformers/rally.js +8 -8
  17. package/dist/cjs/src/data/transformers/reception.js +11 -11
  18. package/dist/cjs/src/data/transformers/serve.js +12 -12
  19. package/dist/cjs/src/data/transformers/set.js +11 -11
  20. package/dist/cjs/src/data/transformers/spike.js +13 -13
  21. package/dist/cjs/src/index.d.ts +4 -6
  22. package/dist/cjs/src/index.js +20 -65
  23. package/dist/cjs/src/service/coach/formation.d.ts +6 -6
  24. package/dist/cjs/src/service/coach/formation.js +1 -1
  25. package/dist/cjs/src/service/coach/index.d.ts +2 -3
  26. package/dist/cjs/src/service/coach/index.js +16 -5
  27. package/dist/cjs/src/service/competition/index.d.ts +7 -8
  28. package/dist/cjs/src/service/competition/index.js +21 -15
  29. package/dist/cjs/src/service/country/index.d.ts +1 -2
  30. package/dist/cjs/src/service/country/index.js +15 -3
  31. package/dist/cjs/src/service/draft/index.d.ts +2 -3
  32. package/dist/cjs/src/service/draft/index.js +16 -5
  33. package/dist/cjs/src/service/event/__stubs__/index.js +5 -5
  34. package/dist/cjs/src/service/event/block.d.ts +6 -6
  35. package/dist/cjs/src/service/event/block.js +22 -22
  36. package/dist/cjs/src/service/event/block.test.js +25 -25
  37. package/dist/cjs/src/service/event/in-play-event.d.ts +3 -3
  38. package/dist/cjs/src/service/event/index.d.ts +10 -11
  39. package/dist/cjs/src/service/event/index.js +24 -33
  40. package/dist/cjs/src/service/event/libero-replacement.d.ts +3 -3
  41. package/dist/cjs/src/service/event/libero-replacement.js +7 -7
  42. package/dist/cjs/src/service/event/libero-replacement.test.js +7 -7
  43. package/dist/cjs/src/service/event/rally-event.d.ts +3 -3
  44. package/dist/cjs/src/service/event/rally-event.js +12 -12
  45. package/dist/cjs/src/service/event/reception.d.ts +7 -7
  46. package/dist/cjs/src/service/event/reception.js +17 -17
  47. package/dist/cjs/src/service/event/reception.test.js +13 -13
  48. package/dist/cjs/src/service/event/score.test.js +2 -2
  49. package/dist/cjs/src/service/event/serve.d.ts +7 -7
  50. package/dist/cjs/src/service/event/serve.js +18 -18
  51. package/dist/cjs/src/service/event/serve.test.js +13 -13
  52. package/dist/cjs/src/service/event/set.d.ts +7 -7
  53. package/dist/cjs/src/service/event/set.js +17 -17
  54. package/dist/cjs/src/service/event/set.test.js +13 -13
  55. package/dist/cjs/src/service/event/spike.d.ts +7 -7
  56. package/dist/cjs/src/service/event/spike.js +20 -20
  57. package/dist/cjs/src/service/event/spike.test.js +20 -20
  58. package/dist/cjs/src/service/index.d.ts +9 -10
  59. package/dist/cjs/src/service/index.js +23 -68
  60. package/dist/cjs/src/service/match/{court-target.d.ts → court-target-enum.d.ts} +4 -4
  61. package/dist/cjs/src/service/match/court-target-enum.js +42 -0
  62. package/dist/cjs/src/service/match/court-target.test.js +18 -18
  63. package/dist/cjs/src/service/match/index.d.ts +7 -8
  64. package/dist/cjs/src/service/match/index.js +21 -18
  65. package/dist/cjs/src/service/match/rally.js +1 -1
  66. package/dist/cjs/src/service/match/rally.test.js +2 -2
  67. package/dist/cjs/src/service/player/index.d.ts +5 -6
  68. package/dist/cjs/src/service/player/index.js +19 -11
  69. package/dist/cjs/src/service/player/role.d.ts +13 -11
  70. package/dist/cjs/src/service/player/role.js +32 -20
  71. package/dist/cjs/src/service/player/trait.js +12 -5
  72. package/dist/cjs/src/service/team/index.d.ts +1 -2
  73. package/dist/cjs/src/service/team/index.js +15 -3
  74. package/dist/esm/src/api/events.d.ts +14 -14
  75. package/dist/esm/src/api/index.d.ts +7 -8
  76. package/dist/esm/src/api/index.js +7 -2
  77. package/dist/esm/src/data/index.d.ts +4 -6
  78. package/dist/esm/src/data/index.js +3 -4
  79. package/dist/esm/src/data/models/index.d.ts +62 -64
  80. package/dist/esm/src/data/models/index.js +32 -33
  81. package/dist/esm/src/data/transformers/block.js +13 -13
  82. package/dist/esm/src/data/transformers/court-target.d.ts +3 -3
  83. package/dist/esm/src/data/transformers/court-target.js +15 -15
  84. package/dist/esm/src/data/transformers/event-type.d.ts +3 -3
  85. package/dist/esm/src/data/transformers/event-type.js +10 -10
  86. package/dist/esm/src/data/transformers/index.d.ts +35 -36
  87. package/dist/esm/src/data/transformers/index.js +35 -36
  88. package/dist/esm/src/data/transformers/libero-replacement.js +4 -4
  89. package/dist/esm/src/data/transformers/rally.js +9 -9
  90. package/dist/esm/src/data/transformers/reception.js +12 -12
  91. package/dist/esm/src/data/transformers/serve.js +13 -13
  92. package/dist/esm/src/data/transformers/set.js +12 -12
  93. package/dist/esm/src/data/transformers/spike.js +14 -14
  94. package/dist/esm/src/index.d.ts +4 -6
  95. package/dist/esm/src/index.js +3 -4
  96. package/dist/esm/src/service/coach/formation.d.ts +6 -6
  97. package/dist/esm/src/service/coach/formation.js +1 -1
  98. package/dist/esm/src/service/coach/index.d.ts +2 -3
  99. package/dist/esm/src/service/coach/index.js +2 -3
  100. package/dist/esm/src/service/competition/index.d.ts +7 -8
  101. package/dist/esm/src/service/competition/index.js +7 -8
  102. package/dist/esm/src/service/country/index.d.ts +1 -2
  103. package/dist/esm/src/service/country/index.js +1 -2
  104. package/dist/esm/src/service/draft/index.d.ts +2 -3
  105. package/dist/esm/src/service/draft/index.js +2 -3
  106. package/dist/esm/src/service/event/__stubs__/index.js +8 -8
  107. package/dist/esm/src/service/event/block.d.ts +6 -6
  108. package/dist/esm/src/service/event/block.js +21 -21
  109. package/dist/esm/src/service/event/block.test.js +28 -28
  110. package/dist/esm/src/service/event/in-play-event.d.ts +3 -3
  111. package/dist/esm/src/service/event/index.d.ts +10 -11
  112. package/dist/esm/src/service/event/index.js +10 -11
  113. package/dist/esm/src/service/event/libero-replacement.d.ts +3 -3
  114. package/dist/esm/src/service/event/libero-replacement.js +7 -7
  115. package/dist/esm/src/service/event/libero-replacement.test.js +9 -9
  116. package/dist/esm/src/service/event/rally-event.d.ts +3 -3
  117. package/dist/esm/src/service/event/rally-event.js +11 -11
  118. package/dist/esm/src/service/event/reception.d.ts +7 -7
  119. package/dist/esm/src/service/event/reception.js +16 -16
  120. package/dist/esm/src/service/event/reception.test.js +16 -16
  121. package/dist/esm/src/service/event/score.test.js +3 -3
  122. package/dist/esm/src/service/event/serve.d.ts +7 -7
  123. package/dist/esm/src/service/event/serve.js +17 -17
  124. package/dist/esm/src/service/event/serve.test.js +16 -16
  125. package/dist/esm/src/service/event/set.d.ts +7 -7
  126. package/dist/esm/src/service/event/set.js +16 -16
  127. package/dist/esm/src/service/event/set.test.js +16 -16
  128. package/dist/esm/src/service/event/spike.d.ts +7 -7
  129. package/dist/esm/src/service/event/spike.js +19 -19
  130. package/dist/esm/src/service/event/spike.test.js +23 -23
  131. package/dist/esm/src/service/index.d.ts +9 -10
  132. package/dist/esm/src/service/index.js +9 -10
  133. package/dist/esm/src/service/match/{court-target.d.ts → court-target-enum.d.ts} +4 -4
  134. package/dist/esm/src/service/match/court-target-enum.js +39 -0
  135. package/dist/esm/src/service/match/court-target.test.js +18 -18
  136. package/dist/esm/src/service/match/index.d.ts +7 -8
  137. package/dist/esm/src/service/match/index.js +7 -8
  138. package/dist/esm/src/service/match/rally.js +2 -2
  139. package/dist/esm/src/service/match/rally.test.js +3 -3
  140. package/dist/esm/src/service/player/index.d.ts +5 -6
  141. package/dist/esm/src/service/player/index.js +5 -6
  142. package/dist/esm/src/service/player/role.d.ts +13 -11
  143. package/dist/esm/src/service/player/role.js +31 -20
  144. package/dist/esm/src/service/player/trait.js +12 -5
  145. package/dist/esm/src/service/team/index.d.ts +1 -2
  146. package/dist/esm/src/service/team/index.js +1 -2
  147. package/package.json +1 -1
  148. package/dist/cjs/src/service/match/court-target.js +0 -42
  149. package/dist/esm/src/service/match/court-target.js +0 -39
@@ -1,35 +1,35 @@
1
1
  import { describe, expect, test } from '@jest/globals';
2
- import { CourtTarget } from './court-target';
2
+ import { CourtTargetEnum } from './court-target-enum';
3
3
  describe('CourtTarget Test Module', () => {
4
4
  // getSidePosition Tests
5
5
  test('Should get correct court position', () => {
6
6
  for (let i = 1; i < 7; i++) {
7
- expect(CourtTarget.getSidePosition(i)).toBe(i);
8
- expect(CourtTarget.getSidePosition(i + 6)).toBe(i);
7
+ expect(CourtTargetEnum.getSidePosition(i)).toBe(i);
8
+ expect(CourtTargetEnum.getSidePosition(i + 6)).toBe(i);
9
9
  }
10
10
  });
11
11
  test('Should throw Error when position is out of bounds', () => {
12
- function position() { CourtTarget.getSidePosition(0); }
12
+ function position() { CourtTargetEnum.getSidePosition(0); }
13
13
  expect(position).toThrow(/^POSITION_INDEX_OUT_OF_BOUNDS$/);
14
14
  });
15
15
  // getTeamSide Tests
16
16
  test('Should return team positions', () => {
17
- const positions = CourtTarget.getTeamSide();
18
- expect(positions[0]).toBe(CourtTarget.TEAM_RIGHT_BACK);
19
- expect(positions[1]).toBe(CourtTarget.TEAM_RIGHT_FRONT);
20
- expect(positions[2]).toBe(CourtTarget.TEAM_MIDDLE_FRONT);
21
- expect(positions[3]).toBe(CourtTarget.TEAM_LEFT_FRONT);
22
- expect(positions[4]).toBe(CourtTarget.TEAM_LEFT_BACK);
23
- expect(positions[5]).toBe(CourtTarget.TEAM_MIDDLE_BACK);
17
+ const positions = CourtTargetEnum.getTeamSide();
18
+ expect(positions[0]).toBe(CourtTargetEnum.TEAM_RIGHT_BACK);
19
+ expect(positions[1]).toBe(CourtTargetEnum.TEAM_RIGHT_FRONT);
20
+ expect(positions[2]).toBe(CourtTargetEnum.TEAM_MIDDLE_FRONT);
21
+ expect(positions[3]).toBe(CourtTargetEnum.TEAM_LEFT_FRONT);
22
+ expect(positions[4]).toBe(CourtTargetEnum.TEAM_LEFT_BACK);
23
+ expect(positions[5]).toBe(CourtTargetEnum.TEAM_MIDDLE_BACK);
24
24
  });
25
25
  // getOpponentSide Tests
26
26
  test('Should return opponent team positions', () => {
27
- const positions = CourtTarget.getOpponentSide();
28
- expect(positions[0]).toBe(CourtTarget.OPPONENT_RIGHT_BACK);
29
- expect(positions[1]).toBe(CourtTarget.OPPONENT_RIGHT_FRONT);
30
- expect(positions[2]).toBe(CourtTarget.OPPONENT_MIDDLE_FRONT);
31
- expect(positions[3]).toBe(CourtTarget.OPPONENT_LEFT_FRONT);
32
- expect(positions[4]).toBe(CourtTarget.OPPONENT_LEFT_BACK);
33
- expect(positions[5]).toBe(CourtTarget.OPPONENT_MIDDLE_BACK);
27
+ const positions = CourtTargetEnum.getOpponentSide();
28
+ expect(positions[0]).toBe(CourtTargetEnum.OPPONENT_RIGHT_BACK);
29
+ expect(positions[1]).toBe(CourtTargetEnum.OPPONENT_RIGHT_FRONT);
30
+ expect(positions[2]).toBe(CourtTargetEnum.OPPONENT_MIDDLE_FRONT);
31
+ expect(positions[3]).toBe(CourtTargetEnum.OPPONENT_LEFT_FRONT);
32
+ expect(positions[4]).toBe(CourtTargetEnum.OPPONENT_LEFT_BACK);
33
+ expect(positions[5]).toBe(CourtTargetEnum.OPPONENT_MIDDLE_BACK);
34
34
  });
35
35
  });
@@ -1,8 +1,7 @@
1
- import { Match } from './match';
2
- import { MatchRating } from './match-rating';
3
- import { EventStat, MatchSet, MatchSetState, SetStatistics } from './match-set';
4
- import { PlayerPosition, Rally, RallyState } from './rally';
5
- import { CourtPosition, CourtRow } from './court-position';
6
- import { CourtTarget } from './court-target';
7
- import { MatchTeam } from './match-team';
8
- export { CourtPosition, CourtRow, CourtTarget, EventStat, Match, MatchSet, MatchRating, MatchSetState, MatchTeam, PlayerPosition, Rally, RallyState, SetStatistics, };
1
+ export * from './match';
2
+ export * from './match-rating';
3
+ export * from './match-set';
4
+ export * from './rally';
5
+ export * from './court-position';
6
+ export * from './court-target-enum';
7
+ export * from './match-team';
@@ -1,8 +1,7 @@
1
- import { Match } from './match';
2
- import { MatchRating } from './match-rating';
3
- import { MatchSet, MatchSetState } from './match-set';
4
- import { Rally, RallyState } from './rally';
5
- import { CourtPosition, CourtRow } from './court-position';
6
- import { CourtTarget } from './court-target';
7
- import { MatchTeam } from './match-team';
8
- export { CourtPosition, CourtRow, CourtTarget, Match, MatchSet, MatchRating, MatchSetState, MatchTeam, Rally, RallyState, };
1
+ export * from './match';
2
+ export * from './match-rating';
3
+ export * from './match-set';
4
+ export * from './rally';
5
+ export * from './court-position';
6
+ export * from './court-target-enum';
7
+ export * from './match-team';
@@ -1,5 +1,5 @@
1
1
  import { validateUUID } from '../utils';
2
- import { EventType } from '../event/rally-event';
2
+ import { EventTypeEnum } from '../event/rally-event';
3
3
  export var RallyState;
4
4
  (function (RallyState) {
5
5
  RallyState[RallyState["NEW"] = 0] = "NEW";
@@ -33,7 +33,7 @@ export class Rally {
33
33
  return this._state;
34
34
  }
35
35
  get score() {
36
- return this.events.find(e => e.eventType === EventType.SCORE);
36
+ return this.events.find(e => e.eventType === EventTypeEnum.SCORE);
37
37
  }
38
38
  isOver() {
39
39
  return this._state === RallyState.FINISHED;
@@ -1,7 +1,7 @@
1
1
  import { describe, expect, test } from '@jest/globals';
2
2
  import { Rally, RallyState } from './rally';
3
3
  import { score, serve } from '../event/__stubs__';
4
- import { EventType } from '../event/rally-event';
4
+ import { EventTypeEnum } from '../event/rally-event';
5
5
  import { team } from '../team/__stubs__';
6
6
  describe('Rally Test Module', () => {
7
7
  let rally;
@@ -44,7 +44,7 @@ describe('Rally Test Module', () => {
44
44
  test('Should add event to event array', () => {
45
45
  expect(rally.events.length).toBe(0);
46
46
  rally.addEvent(serve);
47
- expect(rally.events.at(-1)?.eventType).toBe(EventType.SERVE);
47
+ expect(rally.events.at(-1)?.eventType).toBe(EventTypeEnum.SERVE);
48
48
  });
49
49
  // isOver Tests
50
50
  test('Should return false if rally state is not FINISHED', () => {
@@ -66,7 +66,7 @@ describe('Rally Test Module', () => {
66
66
  test('Should return Score if events array contains a Score', () => {
67
67
  rally.addEvent(score);
68
68
  expect(rally.score).not.toBeUndefined();
69
- expect(rally.score?.eventType).toBe(EventType.SCORE);
69
+ expect(rally.score?.eventType).toBe(EventTypeEnum.SCORE);
70
70
  });
71
71
  // RallyState Tests
72
72
  test('Should get next state', () => {
@@ -1,6 +1,5 @@
1
- import { Name, Player, Stat } from './player';
2
- import { PerformanceStats } from './performance-stats';
3
- import { Role } from './role';
4
- import { Trait } from './trait';
5
- import { GeneralStat } from './stats';
6
- export { Player, PerformanceStats, GeneralStat, Name, Stat, Role, Trait };
1
+ export * from './player';
2
+ export * from './performance-stats';
3
+ export * from './role';
4
+ export * from './trait';
5
+ export * from './stats';
@@ -1,6 +1,5 @@
1
- import { Player } from './player';
2
- import { PerformanceStats } from './performance-stats';
3
- import { Role } from './role';
4
- import { Trait } from './trait';
5
- import { GeneralStat } from './stats';
6
- export { Player, PerformanceStats, GeneralStat, Role, Trait };
1
+ export * from './player';
2
+ export * from './performance-stats';
3
+ export * from './role';
4
+ export * from './trait';
5
+ export * from './stats';
@@ -1,13 +1,15 @@
1
1
  import { PerformanceStats } from './performance-stats';
2
- export declare enum Role {
3
- SETTER = "Setter",
4
- LIBERO = "Libero",
5
- OUTSIDE_HITTER = "Outside Hitter",
6
- OPPOSITE_HITTER = "Opposite Hitter",
7
- MIDDLE_BLOCKER = "Middle Blocker",
8
- DEFENSIVE_SPECIALIST = "Defensive Specialist"
9
- }
10
- export declare namespace Role {
11
- function getRoles(): Role[];
12
- function calculateScore(stats: PerformanceStats, role: Role): number;
2
+ export declare class Role {
3
+ readonly name: string;
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
+ static readonly DEFENSIVE_SPECIALIST: Role;
10
+ private static readonly ROLES;
11
+ private constructor();
12
+ static getRoles(): Role[];
13
+ static calculateScore(stats: PerformanceStats, role: Role): number;
14
+ static assignRoles(stats: PerformanceStats): Role[];
13
15
  }
@@ -1,28 +1,39 @@
1
1
  import roleWeights from '../../../data/role.formula.json';
2
- export var Role;
3
- (function (Role) {
4
- Role["SETTER"] = "Setter";
5
- Role["LIBERO"] = "Libero";
6
- Role["OUTSIDE_HITTER"] = "Outside Hitter";
7
- Role["OPPOSITE_HITTER"] = "Opposite Hitter";
8
- Role["MIDDLE_BLOCKER"] = "Middle Blocker";
9
- Role["DEFENSIVE_SPECIALIST"] = "Defensive Specialist";
10
- })(Role || (Role = {}));
11
- // eslint-disable-next-line @typescript-eslint/no-namespace
12
- (function (Role) {
13
- const ROLES = [Role.LIBERO, Role.SETTER, Role.OPPOSITE_HITTER, Role.OUTSIDE_HITTER, Role.MIDDLE_BLOCKER,
14
- Role.DEFENSIVE_SPECIALIST];
15
- function getRoles() {
16
- return [...ROLES];
2
+ export class Role {
3
+ constructor(name) {
4
+ this.name = name;
17
5
  }
18
- Role.getRoles = getRoles;
19
- function calculateScore(stats, role) {
20
- const weights = roleWeights.find(r => r.role === role);
6
+ static getRoles() {
7
+ return [...Role.ROLES];
8
+ }
9
+ static calculateScore(stats, role) {
10
+ const weights = roleWeights.find(r => r.role === role.name);
21
11
  if (weights == null)
22
12
  throw new Error('COULD_NOT_FIND_ROLE_WEIGHT');
23
13
  const score = Object.entries(weights.weight)
24
14
  .reduce((score, [key, value]) => score + (stats[key] * weights.weight[key]), 0);
25
15
  return Math.round(score);
26
16
  }
27
- Role.calculateScore = calculateScore;
28
- })(Role || (Role = {}));
17
+ static assignRoles(stats) {
18
+ const scores = this.getRoles().map(role => ({
19
+ role,
20
+ score: this.calculateScore(stats, role)
21
+ })).sort((x, y) => y.score - x.score);
22
+ const out = [scores[0].role];
23
+ if (scores[1].score >= 60) {
24
+ out.push(scores[1].role);
25
+ }
26
+ if (scores[2].score >= 70) {
27
+ out.push(scores[2].role);
28
+ }
29
+ return out;
30
+ }
31
+ }
32
+ Role.SETTER = new Role('Setter');
33
+ Role.LIBERO = new Role('Libero');
34
+ Role.OUTSIDE_HITTER = new Role('Outside Hitter');
35
+ Role.OPPOSITE_HITTER = new Role('Opposite Hitter');
36
+ Role.MIDDLE_BLOCKER = new Role('Middle Blocker');
37
+ Role.DEFENSIVE_SPECIALIST = new Role('Defensive Specialist');
38
+ Role.ROLES = [Role.LIBERO, Role.SETTER, Role.OPPOSITE_HITTER, Role.OUTSIDE_HITTER, Role.MIDDLE_BLOCKER,
39
+ Role.DEFENSIVE_SPECIALIST];
@@ -37,15 +37,18 @@ export class Trait {
37
37
  .slice(0, traitCount);
38
38
  }
39
39
  }
40
+ // A Setter gets a bonus to their score and the receiving attacker gets a bonus as well.
41
+ // Stacks with attacker bonus
40
42
  Trait.MASTER_MIND = new Trait({
41
43
  name: 'Master Mind',
42
44
  roles: [Role.SETTER],
43
45
  modifier: 1.25,
44
- chance: 0.15,
46
+ chance: 0.25,
45
47
  statThreshold: 80,
46
48
  stat: GeneralStat.ATTACK,
47
49
  weight: 10
48
50
  });
51
+ // Will always participate in blocking regardless of chance
49
52
  Trait.MOVING_WALL = new Trait({
50
53
  name: 'Moving Wall',
51
54
  roles: [Role.MIDDLE_BLOCKER, Role.DEFENSIVE_SPECIALIST],
@@ -55,6 +58,7 @@ Trait.MOVING_WALL = new Trait({
55
58
  stat: GeneralStat.DEFENSE,
56
59
  weight: 5
57
60
  });
61
+ // On attack, will always pick the worst receiver
58
62
  Trait.MARKSMAN = new Trait({
59
63
  name: 'Marksman',
60
64
  roles: [Role.OUTSIDE_HITTER, Role.OPPOSITE_HITTER, Role.SETTER],
@@ -64,15 +68,17 @@ Trait.MARKSMAN = new Trait({
64
68
  stat: GeneralStat.ATTACK,
65
69
  weight: 5
66
70
  });
71
+ // Increases the score of the serve by 25% when serve type is Jumping.
67
72
  Trait.METEOR_SERVE = new Trait({
68
73
  name: 'Meteor Serve',
69
74
  roles: [Role.OUTSIDE_HITTER, Role.OPPOSITE_HITTER, Role.SETTER, Role.DEFENSIVE_SPECIALIST, Role.MIDDLE_BLOCKER],
70
- modifier: 1.33,
71
- chance: 0.25,
75
+ modifier: 1.25,
76
+ chance: 0.1,
72
77
  statThreshold: 75,
73
78
  stat: GeneralStat.SERVE,
74
79
  weight: 10
75
80
  });
81
+ // Has a 50% chance of taking an action without decreasing energy.
76
82
  Trait.VIGOROUS = new Trait({
77
83
  name: 'Vigorous',
78
84
  roles: [],
@@ -82,12 +88,13 @@ Trait.VIGOROUS = new Trait({
82
88
  stat: GeneralStat.PHYSICAL,
83
89
  weight: 1
84
90
  });
91
+ // Takes place of the receiver and increases reception score by 25%. Can only trigger in back-row.
85
92
  Trait.GUARDIAN = new Trait({
86
93
  name: 'Guardian',
87
94
  roles: [Role.DEFENSIVE_SPECIALIST, Role.LIBERO],
88
- chance: 0.33,
95
+ chance: 0.25,
89
96
  statThreshold: 75,
90
- modifier: 1.2,
97
+ modifier: 1.25,
91
98
  stat: GeneralStat.DEFENSE,
92
99
  weight: 10
93
100
  });
@@ -1,2 +1 @@
1
- import { Team } from './team';
2
- export { Team };
1
+ export * from './team';
@@ -1,2 +1 @@
1
- import { Team } from './team';
2
- export { Team };
1
+ export * from './team';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "volleyballsimtypes",
3
- "version": "0.0.74",
3
+ "version": "0.0.76",
4
4
  "description": "vbsim types",
5
5
  "main": "./dist/cjs/src/index.js",
6
6
  "module": "./dist/esm/src/index.js",
@@ -1,42 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.CourtTarget = void 0;
4
- var CourtTarget;
5
- (function (CourtTarget) {
6
- CourtTarget[CourtTarget["NO_TARGET"] = 0] = "NO_TARGET";
7
- CourtTarget[CourtTarget["OPPONENT_RIGHT_BACK"] = 7] = "OPPONENT_RIGHT_BACK";
8
- CourtTarget[CourtTarget["OPPONENT_MIDDLE_BACK"] = 12] = "OPPONENT_MIDDLE_BACK";
9
- CourtTarget[CourtTarget["OPPONENT_LEFT_BACK"] = 11] = "OPPONENT_LEFT_BACK";
10
- CourtTarget[CourtTarget["OPPONENT_RIGHT_FRONT"] = 8] = "OPPONENT_RIGHT_FRONT";
11
- CourtTarget[CourtTarget["OPPONENT_MIDDLE_FRONT"] = 9] = "OPPONENT_MIDDLE_FRONT";
12
- CourtTarget[CourtTarget["OPPONENT_LEFT_FRONT"] = 10] = "OPPONENT_LEFT_FRONT";
13
- // --------------------------------------------------------------------------------
14
- CourtTarget[CourtTarget["TEAM_LEFT_FRONT"] = 4] = "TEAM_LEFT_FRONT";
15
- CourtTarget[CourtTarget["TEAM_MIDDLE_FRONT"] = 3] = "TEAM_MIDDLE_FRONT";
16
- CourtTarget[CourtTarget["TEAM_RIGHT_FRONT"] = 2] = "TEAM_RIGHT_FRONT";
17
- CourtTarget[CourtTarget["TEAM_LEFT_BACK"] = 5] = "TEAM_LEFT_BACK";
18
- CourtTarget[CourtTarget["TEAM_MIDDLE_BACK"] = 6] = "TEAM_MIDDLE_BACK";
19
- CourtTarget[CourtTarget["TEAM_RIGHT_BACK"] = 1] = "TEAM_RIGHT_BACK";
20
- })(CourtTarget = exports.CourtTarget || (exports.CourtTarget = {}));
21
- // eslint-disable-next-line @typescript-eslint/no-namespace
22
- (function (CourtTarget) {
23
- function getTeamSide() {
24
- return [CourtTarget.TEAM_RIGHT_BACK, CourtTarget.TEAM_RIGHT_FRONT, CourtTarget.TEAM_MIDDLE_FRONT,
25
- CourtTarget.TEAM_LEFT_FRONT, CourtTarget.TEAM_LEFT_BACK, CourtTarget.TEAM_MIDDLE_BACK];
26
- }
27
- CourtTarget.getTeamSide = getTeamSide;
28
- function getOpponentSide() {
29
- return [CourtTarget.OPPONENT_RIGHT_BACK, CourtTarget.OPPONENT_RIGHT_FRONT, CourtTarget.OPPONENT_MIDDLE_FRONT,
30
- CourtTarget.OPPONENT_LEFT_FRONT, CourtTarget.OPPONENT_LEFT_BACK, CourtTarget.OPPONENT_MIDDLE_BACK];
31
- }
32
- CourtTarget.getOpponentSide = getOpponentSide;
33
- function getSidePosition(position) {
34
- if (position < 1 || position > 12)
35
- throw new Error('POSITION_INDEX_OUT_OF_BOUNDS');
36
- if (position > 6)
37
- return position - 6;
38
- else
39
- return position;
40
- }
41
- CourtTarget.getSidePosition = getSidePosition;
42
- })(CourtTarget = exports.CourtTarget || (exports.CourtTarget = {}));
@@ -1,39 +0,0 @@
1
- export var CourtTarget;
2
- (function (CourtTarget) {
3
- CourtTarget[CourtTarget["NO_TARGET"] = 0] = "NO_TARGET";
4
- CourtTarget[CourtTarget["OPPONENT_RIGHT_BACK"] = 7] = "OPPONENT_RIGHT_BACK";
5
- CourtTarget[CourtTarget["OPPONENT_MIDDLE_BACK"] = 12] = "OPPONENT_MIDDLE_BACK";
6
- CourtTarget[CourtTarget["OPPONENT_LEFT_BACK"] = 11] = "OPPONENT_LEFT_BACK";
7
- CourtTarget[CourtTarget["OPPONENT_RIGHT_FRONT"] = 8] = "OPPONENT_RIGHT_FRONT";
8
- CourtTarget[CourtTarget["OPPONENT_MIDDLE_FRONT"] = 9] = "OPPONENT_MIDDLE_FRONT";
9
- CourtTarget[CourtTarget["OPPONENT_LEFT_FRONT"] = 10] = "OPPONENT_LEFT_FRONT";
10
- // --------------------------------------------------------------------------------
11
- CourtTarget[CourtTarget["TEAM_LEFT_FRONT"] = 4] = "TEAM_LEFT_FRONT";
12
- CourtTarget[CourtTarget["TEAM_MIDDLE_FRONT"] = 3] = "TEAM_MIDDLE_FRONT";
13
- CourtTarget[CourtTarget["TEAM_RIGHT_FRONT"] = 2] = "TEAM_RIGHT_FRONT";
14
- CourtTarget[CourtTarget["TEAM_LEFT_BACK"] = 5] = "TEAM_LEFT_BACK";
15
- CourtTarget[CourtTarget["TEAM_MIDDLE_BACK"] = 6] = "TEAM_MIDDLE_BACK";
16
- CourtTarget[CourtTarget["TEAM_RIGHT_BACK"] = 1] = "TEAM_RIGHT_BACK";
17
- })(CourtTarget || (CourtTarget = {}));
18
- // eslint-disable-next-line @typescript-eslint/no-namespace
19
- (function (CourtTarget) {
20
- function getTeamSide() {
21
- return [CourtTarget.TEAM_RIGHT_BACK, CourtTarget.TEAM_RIGHT_FRONT, CourtTarget.TEAM_MIDDLE_FRONT,
22
- CourtTarget.TEAM_LEFT_FRONT, CourtTarget.TEAM_LEFT_BACK, CourtTarget.TEAM_MIDDLE_BACK];
23
- }
24
- CourtTarget.getTeamSide = getTeamSide;
25
- function getOpponentSide() {
26
- return [CourtTarget.OPPONENT_RIGHT_BACK, CourtTarget.OPPONENT_RIGHT_FRONT, CourtTarget.OPPONENT_MIDDLE_FRONT,
27
- CourtTarget.OPPONENT_LEFT_FRONT, CourtTarget.OPPONENT_LEFT_BACK, CourtTarget.OPPONENT_MIDDLE_BACK];
28
- }
29
- CourtTarget.getOpponentSide = getOpponentSide;
30
- function getSidePosition(position) {
31
- if (position < 1 || position > 12)
32
- throw new Error('POSITION_INDEX_OUT_OF_BOUNDS');
33
- if (position > 6)
34
- return position - 6;
35
- else
36
- return position;
37
- }
38
- CourtTarget.getSidePosition = getSidePosition;
39
- })(CourtTarget || (CourtTarget = {}));