enefel 1.0.88 → 1.0.92
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/index.js +8 -0
- package/package.json +2 -1
- package/race.js +58 -0
- package/skill.js +27 -10
- package/stadium.js +8 -3
- package/state.js +19 -0
package/index.js
CHANGED
|
@@ -823,6 +823,13 @@ function canFaceUp(player) {
|
|
|
823
823
|
|
|
824
824
|
// *************************** Field *****************************
|
|
825
825
|
|
|
826
|
+
function isGameRunning(game) {
|
|
827
|
+
return (
|
|
828
|
+
game.status === GAME_STATUS.BEFORE ||
|
|
829
|
+
game.status === GAME_STATUS.ONGOING ||
|
|
830
|
+
game.status === GAME_STATUS.TD
|
|
831
|
+
);
|
|
832
|
+
}
|
|
826
833
|
function isSetUp(game) {
|
|
827
834
|
return game.status === GAME_STATUS.BEFORE || game.status === GAME_STATUS.TD;
|
|
828
835
|
}
|
|
@@ -905,6 +912,7 @@ module.exports = {
|
|
|
905
912
|
INITIAL_REROLL,
|
|
906
913
|
isAdjacent,
|
|
907
914
|
isCoach,
|
|
915
|
+
isGameRunning,
|
|
908
916
|
isOnField,
|
|
909
917
|
isOnLine,
|
|
910
918
|
isSamePlayer,
|
package/package.json
CHANGED
package/race.js
CHANGED
|
@@ -18,6 +18,64 @@ const { SKILL_NAMES } = require("./skill");
|
|
|
18
18
|
// const ranges = [6, 16, 31, 51, 76, 176];
|
|
19
19
|
// https://web.archive.org/web/20090403112513/http://enefel.org/carriere.php
|
|
20
20
|
module.exports = {
|
|
21
|
+
// AMAZON
|
|
22
|
+
"amazon-linewomen": {
|
|
23
|
+
MA: 6,
|
|
24
|
+
ST: 3,
|
|
25
|
+
AG: 3,
|
|
26
|
+
AV: 8,
|
|
27
|
+
normal: "G",
|
|
28
|
+
double: "AS",
|
|
29
|
+
normalCoach: "G",
|
|
30
|
+
icons: ["amazon-linewomen1"],
|
|
31
|
+
skills: [SKILL_NAMES.DODGE],
|
|
32
|
+
badge: "amazon-career",
|
|
33
|
+
range: 0,
|
|
34
|
+
cost: 75,
|
|
35
|
+
},
|
|
36
|
+
"amazon-thrower": {
|
|
37
|
+
MA: 6,
|
|
38
|
+
ST: 3,
|
|
39
|
+
AG: 3,
|
|
40
|
+
AV: 8,
|
|
41
|
+
normal: "GP",
|
|
42
|
+
double: "AS",
|
|
43
|
+
normalCoach: "G",
|
|
44
|
+
icons: ["amazon-thrower1"],
|
|
45
|
+
skills: [SKILL_NAMES.PASS, SKILL_NAMES.DODGE, SKILL_NAMES.SPECIALIST],
|
|
46
|
+
badge: "amazon-career",
|
|
47
|
+
range: 1,
|
|
48
|
+
cost: 75,
|
|
49
|
+
},
|
|
50
|
+
"amazon-catcher": {
|
|
51
|
+
MA: 6,
|
|
52
|
+
ST: 3,
|
|
53
|
+
AG: 3,
|
|
54
|
+
AV: 8,
|
|
55
|
+
normal: "AG",
|
|
56
|
+
double: "S",
|
|
57
|
+
normalCoach: "G",
|
|
58
|
+
icons: ["amazon-catcher1"],
|
|
59
|
+
skills: [SKILL_NAMES.CATCH, SKILL_NAMES.DODGE, SKILL_NAMES.SPECIALIST],
|
|
60
|
+
badge: "amazon-career",
|
|
61
|
+
range: 2,
|
|
62
|
+
cost: 75,
|
|
63
|
+
},
|
|
64
|
+
"amazon-blitzer": {
|
|
65
|
+
MA: 6,
|
|
66
|
+
ST: 3,
|
|
67
|
+
AG: 3,
|
|
68
|
+
AV: 8,
|
|
69
|
+
normal: "GS",
|
|
70
|
+
double: "A",
|
|
71
|
+
normalCoach: "G",
|
|
72
|
+
icons: ["amazon-blitzer1"],
|
|
73
|
+
skills: [SKILL_NAMES.BLOCK, SKILL_NAMES.DODGE, SKILL_NAMES.SPECIALIST],
|
|
74
|
+
badge: "amazon-career",
|
|
75
|
+
range: 4,
|
|
76
|
+
cost: 90,
|
|
77
|
+
},
|
|
78
|
+
|
|
21
79
|
// HUMAN
|
|
22
80
|
|
|
23
81
|
"human-lineman": {
|
package/skill.js
CHANGED
|
@@ -215,18 +215,35 @@ const isActivableSkills = (skill) => {
|
|
|
215
215
|
return activables.includes(skill);
|
|
216
216
|
};
|
|
217
217
|
|
|
218
|
+
function getStarLimit(teamPlayers) {
|
|
219
|
+
const specialists = getPlayersWithSkill(
|
|
220
|
+
teamPlayers,
|
|
221
|
+
SKILL_NAMES.SPECIALIST
|
|
222
|
+
).length;
|
|
223
|
+
const extra =
|
|
224
|
+
specialists - SPECIALIST_LIMIT > 0 ? specialists - SPECIALIST_LIMIT : 0;
|
|
225
|
+
return STAR_LIMIT - extra;
|
|
226
|
+
}
|
|
227
|
+
|
|
228
|
+
function getSpecialistLimit(teamPlayers) {
|
|
229
|
+
const stars = getPlayersWithSkill(teamPlayers, SKILL_NAMES.STAR).length;
|
|
230
|
+
const extra = STAR_LIMIT - stars;
|
|
231
|
+
return SPECIALIST_LIMIT + extra;
|
|
232
|
+
}
|
|
233
|
+
|
|
218
234
|
function getSkillLimitSizeTeam(player, teamPlayers) {
|
|
219
235
|
let limitSkill = null;
|
|
220
236
|
let skillToCheck = null;
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
limitSkill = STAR_LIMIT;
|
|
224
|
-
} else if (hasSkill(player, SKILL_NAMES.BIG_GUY)) {
|
|
237
|
+
|
|
238
|
+
if (hasSkill(player, SKILL_NAMES.BIG_GUY)) {
|
|
225
239
|
skillToCheck = SKILL_NAMES.BIG_GUY;
|
|
226
240
|
limitSkill = BIG_GUY_LIMIT;
|
|
241
|
+
} else if (hasSkill(player, SKILL_NAMES.STAR)) {
|
|
242
|
+
skillToCheck = SKILL_NAMES.STAR;
|
|
243
|
+
limitSkill = getStarLimit(teamPlayers);
|
|
227
244
|
} else if (hasSkill(player, SKILL_NAMES.SPECIALIST)) {
|
|
228
245
|
skillToCheck = SKILL_NAMES.SPECIALIST;
|
|
229
|
-
limitSkill =
|
|
246
|
+
limitSkill = getSpecialistLimit(teamPlayers);
|
|
230
247
|
}
|
|
231
248
|
if (skillToCheck) {
|
|
232
249
|
const nb = getPlayersWithSkill(teamPlayers, skillToCheck).length;
|
|
@@ -239,16 +256,16 @@ function getSkillLimitSizeTeam(player, teamPlayers) {
|
|
|
239
256
|
|
|
240
257
|
module.exports = {
|
|
241
258
|
BIG_GUY_LIMIT,
|
|
242
|
-
isActivableSkills,
|
|
243
259
|
getPlayersWithSkill,
|
|
244
260
|
getSkill,
|
|
245
261
|
getSkillLimitSizeTeam,
|
|
262
|
+
getSpecialistLimit,
|
|
263
|
+
getStarLimit,
|
|
246
264
|
hasSkill,
|
|
265
|
+
isActivableSkills,
|
|
266
|
+
SKILL_INFO_ACTIVE,
|
|
267
|
+
SKILL_INFO_INACTIVE,
|
|
247
268
|
SKILL_NAMES,
|
|
248
269
|
SKILLS,
|
|
249
|
-
SPECIALIST_LIMIT,
|
|
250
|
-
STAR_LIMIT,
|
|
251
270
|
useSkill,
|
|
252
|
-
SKILL_INFO_ACTIVE,
|
|
253
|
-
SKILL_INFO_INACTIVE,
|
|
254
271
|
};
|
package/stadium.js
CHANGED
|
@@ -1,6 +1,9 @@
|
|
|
1
1
|
const { INITIAL_REROLL, p } = require(".");
|
|
2
2
|
const { d6 } = require("./random");
|
|
3
3
|
|
|
4
|
+
const MIN_SCRIMMAGE = 3; // TODO: in league param
|
|
5
|
+
const MAX_LATERAL = 2;
|
|
6
|
+
|
|
4
7
|
const TILES_STADIUM = {
|
|
5
8
|
a: {
|
|
6
9
|
price: 0,
|
|
@@ -253,21 +256,23 @@ function splitList(w, s) {
|
|
|
253
256
|
|
|
254
257
|
module.exports = {
|
|
255
258
|
addCenterZone,
|
|
259
|
+
getRerollCoachCost,
|
|
256
260
|
getStadiumCapacity,
|
|
257
261
|
getStadiumCapacityByGame,
|
|
258
262
|
getStadiumFan,
|
|
259
263
|
getStadiumReroll,
|
|
264
|
+
getStadiumRerollCoach,
|
|
260
265
|
insertLine,
|
|
261
266
|
insertTile,
|
|
267
|
+
MAX_LATERAL,
|
|
262
268
|
maxHeight,
|
|
263
269
|
maxWidth,
|
|
270
|
+
MIN_SCRIMMAGE,
|
|
264
271
|
minHeight,
|
|
265
272
|
minWidth,
|
|
266
273
|
priceSize,
|
|
267
274
|
removeLine,
|
|
268
275
|
removeTile,
|
|
269
|
-
TILES_STADIUM,
|
|
270
|
-
getStadiumRerollCoach,
|
|
271
276
|
STADIUM_REROLL_COACH_SUCCESS,
|
|
272
|
-
|
|
277
|
+
TILES_STADIUM,
|
|
273
278
|
};
|
package/state.js
CHANGED
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
const { MIN_SCRIMMAGE } = require("./stadium");
|
|
2
|
+
|
|
1
3
|
const TEAM_STATE = {
|
|
2
4
|
ACTIVE: 0,
|
|
3
5
|
EMPTY: 1,
|
|
@@ -48,6 +50,10 @@ function isTeamEmpty(state) {
|
|
|
48
50
|
return state === TEAM_STATE.EMPTY;
|
|
49
51
|
}
|
|
50
52
|
|
|
53
|
+
function isTeamLessMin(team) {
|
|
54
|
+
return team.players && team.players.length < MIN_SCRIMMAGE;
|
|
55
|
+
}
|
|
56
|
+
|
|
51
57
|
function isTeamBlocked(state) {
|
|
52
58
|
return state === TEAM_STATE.BLOCKED;
|
|
53
59
|
}
|
|
@@ -56,6 +62,17 @@ function isTeamActive(state) {
|
|
|
56
62
|
return state === TEAM_STATE.ACTIVE;
|
|
57
63
|
}
|
|
58
64
|
|
|
65
|
+
function canPlayLeague(team) {
|
|
66
|
+
if (
|
|
67
|
+
isTeamEmpty(team.state) ||
|
|
68
|
+
isTeamBlocked(team.state) ||
|
|
69
|
+
isTeamLessMin(team)
|
|
70
|
+
) {
|
|
71
|
+
return false;
|
|
72
|
+
}
|
|
73
|
+
return true;
|
|
74
|
+
}
|
|
75
|
+
|
|
59
76
|
function getPlayableStates() {
|
|
60
77
|
return [PLAYER_STATE.ACTIVE, PLAYER_STATE.INACTIVE];
|
|
61
78
|
}
|
|
@@ -71,6 +88,7 @@ function shouldBeRemovedFromTeam(state) {
|
|
|
71
88
|
module.exports = {
|
|
72
89
|
canBeSelectedByUser,
|
|
73
90
|
canJoinTeamWithState,
|
|
91
|
+
canPlayLeague,
|
|
74
92
|
canTeamPlayLeague,
|
|
75
93
|
getPlayableStates,
|
|
76
94
|
isActive,
|
|
@@ -82,6 +100,7 @@ module.exports = {
|
|
|
82
100
|
isTeamActive,
|
|
83
101
|
isTeamBlocked,
|
|
84
102
|
isTeamEmpty,
|
|
103
|
+
isTeamLessMin,
|
|
85
104
|
PLAYER_STATE,
|
|
86
105
|
shouldBeRemovedFromTeam,
|
|
87
106
|
TEAM_STATE,
|