enefel 1.0.104 → 1.0.107

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/improvement.js CHANGED
@@ -7,6 +7,26 @@ const SPP = {
7
7
  EXP_SOR: 2,
8
8
  EXP_TD: 3,
9
9
  };
10
+ const ranges = [6, 16, 31, 51, 76, 176];
11
+ const coachRanges = [3, 8, 15, 25, 36, 80];
12
+
13
+ const getNextRange = (currentRange) => {
14
+ for (let i = 0; i < ranges.length; i++) {
15
+ if (currentRange < ranges[i]) {
16
+ return ranges[i];
17
+ }
18
+ }
19
+ return "∞";
20
+ };
21
+
22
+ const getNextRangeCoach = (currentRange) => {
23
+ for (let i = 0; i < coachRanges.length; i++) {
24
+ if (currentRange < coachRanges[i]) {
25
+ return coachRanges[i];
26
+ }
27
+ }
28
+ return "∞";
29
+ };
10
30
 
11
31
  /*
12
32
  SPPs Title Star Player Rolls
@@ -19,10 +39,10 @@ SPPs Title Star Player Rolls
19
39
  176+ Legend Six
20
40
  */
21
41
 
22
- const ranges = [6, 16, 31, 51, 76, 176];
23
- const coachRanges = [3, 8, 15, 25, 36, 80];
24
42
  module.exports = {
25
43
  coachRanges,
44
+ getNextRange,
45
+ getNextRangeCoach,
26
46
  ranges,
27
47
  SPP,
28
48
  };
package/index.js CHANGED
@@ -19,9 +19,9 @@ const {
19
19
  METEO,
20
20
  } = require("./meteo");
21
21
  const { distance } = require("./calcul");
22
- const { getCareerFromPlayer, getCareers } = require("./race");
22
+ const { getCareerFromPlayer } = require("./race");
23
23
  const { getMaxMA } = require("./player");
24
- const INITIAL_REROLL = 2;
24
+
25
25
  const POSTULATION_HOURS = 24;
26
26
  const INACTIVE_DAYS = 10;
27
27
  const MAX_PLAYER_USER = 2;
@@ -922,7 +922,6 @@ module.exports = {
922
922
  getTeamColor,
923
923
  getThrowingBonus,
924
924
  haveSameTeam,
925
- INITIAL_REROLL,
926
925
  isAdjacent,
927
926
  isCoach,
928
927
  isGameRunning,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "enefel",
3
- "version": "1.0.104",
3
+ "version": "1.0.107",
4
4
  "main": "index.js",
5
5
  "author": "Manest",
6
6
  "license": "MIT",
package/race.js CHANGED
@@ -1,4 +1,5 @@
1
1
  const { SKILL_NAMES } = require("./skill");
2
+ const { canBeSelectedByUser } = require("./state");
2
3
 
3
4
  const ANIMOSITY_NUMBER = 2;
4
5
 
@@ -983,8 +984,18 @@ function getCareerRanges() {
983
984
  return [0, ...ranges];
984
985
  }
985
986
 
987
+ const NB_MAX_PLAYERS = 2;
988
+
989
+ function getPlayersAvailableForPromo(players = []) {
990
+ const playersByState = getPlayersByState(players);
991
+
992
+ return [...playersByState.actives, ...playersByState.lastRetired].slice(
993
+ 0,
994
+ NB_MAX_PLAYERS
995
+ );
996
+ }
997
+
986
998
  function getPromoCareer(careerId, userPlayers) {
987
- const NB_MAX_PLAYERS = 2;
988
999
  const race = getRaceFromCareer(careerId);
989
1000
  let promo = userPlayers
990
1001
  .filter((p, i) => p && i < NB_MAX_PLAYERS && getRaceFromPlayer(p) === race)
@@ -1012,6 +1023,12 @@ function getTeamGroups(team) {
1012
1023
  return groups;
1013
1024
  }
1014
1025
 
1026
+ function isPlayerNeutralGroup(player) {
1027
+ const group = getPlayerGroup(player);
1028
+ const neutrals = [GROUP_NAME.NEUTRAL];
1029
+ return neutrals.includes(group);
1030
+ }
1031
+
1015
1032
  function isNeutralGroup(group) {
1016
1033
  const neutrals = [GROUP_NAME.NEUTRAL];
1017
1034
  return neutrals.includes(group);
@@ -1023,6 +1040,27 @@ function getTeamIncompatibleGroups(team) {
1023
1040
  return Object.entries(groups).filter((group) => !isNeutralGroup(group[0]));
1024
1041
  }
1025
1042
 
1043
+ const getPlayersByState = (players) => {
1044
+ const playerActives = [];
1045
+ const playerInactives = [];
1046
+
1047
+ for (const p of players) {
1048
+ if (canBeSelectedByUser(p.state)) {
1049
+ playerActives.push(p);
1050
+ } else {
1051
+ playerInactives.push(p);
1052
+ }
1053
+ }
1054
+
1055
+ return {
1056
+ actives: playerActives,
1057
+ inactives: playerInactives,
1058
+ lastRetired: playerInactives.sort(
1059
+ (a, b) => Date.parse(b.connectedAt) - Date.parse(a.connectedAt)
1060
+ ),
1061
+ };
1062
+ };
1063
+
1026
1064
  module.exports = {
1027
1065
  ANIMOSITY_NUMBER,
1028
1066
  COMPATIBILITY,
@@ -1036,6 +1074,8 @@ module.exports = {
1036
1074
  getCareersByRace,
1037
1075
  getPlayerCompatibility,
1038
1076
  getPlayerGroup,
1077
+ getPlayersAvailableForPromo,
1078
+ getPlayersByState,
1039
1079
  getPriceCareer,
1040
1080
  getPromoCareer,
1041
1081
  getRaceFromCareer,
@@ -1045,5 +1085,6 @@ module.exports = {
1045
1085
  getTeamIncompatibleGroups,
1046
1086
  GROUP_NAME,
1047
1087
  isNeutralGroup,
1088
+ isPlayerNeutralGroup,
1048
1089
  RACE,
1049
1090
  };
package/skill.js CHANGED
@@ -171,7 +171,7 @@ function useSkill(player, skillId, date = -1, info = null) {
171
171
  skill.info = info;
172
172
  }
173
173
 
174
- function getSkill(player, skillId) {
174
+ function getSkill(player, skillId, info = null) {
175
175
  if (!SKILLS.hasOwnProperty(skillId)) {
176
176
  throw `Skill '${skillId}' does not exist`;
177
177
  }
@@ -179,12 +179,20 @@ function getSkill(player, skillId) {
179
179
  if (!playerSkills) {
180
180
  return false;
181
181
  }
182
- const skill = playerSkills.find((s) => s.skill_id === skillId);
182
+ const skill = playerSkills.find(
183
+ (s) => s.skill_id === skillId && (info ? s.info === info : true)
184
+ );
183
185
  return skill;
184
186
  }
185
187
 
186
- function hasSkill(player, skillId, withDate = false, checkActivated = true) {
187
- const skill = getSkill(player, skillId);
188
+ function hasSkill(
189
+ player,
190
+ skillId,
191
+ withDate = false,
192
+ checkActivated = true,
193
+ info = null
194
+ ) {
195
+ const skill = getSkill(player, skillId, info);
188
196
 
189
197
  const isActivated = (skill) =>
190
198
  checkActivated && isActivableSkills(skillId)
package/stadium.js CHANGED
@@ -1,6 +1,6 @@
1
- const { INITIAL_REROLL } = require(".");
2
1
  const { d6 } = require("./random");
3
2
 
3
+ const INITIAL_REROLL = 2;
4
4
  const MIN_SCRIMMAGE = 3; // TODO: in league param
5
5
  const MAX_LATERAL = 2;
6
6
 
package/state.js CHANGED
@@ -85,42 +85,12 @@ function shouldBeRemovedFromTeam(state) {
85
85
  return state === PLAYER_STATE.BLOCKED || state === PLAYER_STATE.DEAD;
86
86
  }
87
87
 
88
- const getPlayersByState = (players) => {
89
- const playerActives = [];
90
- const playerInactives = [];
91
- let lastRetired = null;
92
-
93
- for (const p of players) {
94
- if (canBeSelectedByUser(p.state)) {
95
- playerActives.push(p);
96
- } else {
97
- playerInactives.push(p);
98
- }
99
- }
100
-
101
- for (player of playerInactives) {
102
- if (!lastRetired) {
103
- lastRetired = player;
104
- }
105
- if (player.connectedAt > lastRetired.connectedAt) {
106
- lastRetired = player;
107
- }
108
- }
109
-
110
- return {
111
- actives: playerActives,
112
- inactives: playerInactives,
113
- lastRetired,
114
- };
115
- };
116
-
117
88
  module.exports = {
118
89
  canBeSelectedByUser,
119
90
  canJoinTeamWithState,
120
91
  canPlayLeague,
121
92
  canTeamPlayLeague,
122
93
  getPlayableStates,
123
- getPlayersByState,
124
94
  isActive,
125
95
  isBlocked,
126
96
  isDead,