enefel 2.16.0 → 2.16.1
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/dist/package-lock.json +2 -2
- package/dist/package.json +1 -1
- package/dist/skill.d.ts +12 -1
- package/dist/skill.js +17 -2
- package/dist/skills/animalSavagery.d.ts +31 -0
- package/dist/skills/animalSavagery.js +30 -0
- package/package.json +1 -1
- package/skill.ts +17 -1
- package/skills/animalSavagery.ts +34 -0
package/dist/package-lock.json
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "enefel",
|
|
3
|
-
"version": "2.16.
|
|
3
|
+
"version": "2.16.1",
|
|
4
4
|
"lockfileVersion": 2,
|
|
5
5
|
"requires": true,
|
|
6
6
|
"packages": {
|
|
7
7
|
"": {
|
|
8
8
|
"name": "enefel",
|
|
9
|
-
"version": "2.16.
|
|
9
|
+
"version": "2.16.1",
|
|
10
10
|
"license": "MIT",
|
|
11
11
|
"dependencies": {
|
|
12
12
|
"csv-parse": "^6.1.0",
|
package/dist/package.json
CHANGED
package/dist/skill.d.ts
CHANGED
|
@@ -130,6 +130,17 @@ declare const getPlayersWithSkill: (players: PlayerWithSkill[], skillId: SKILL_N
|
|
|
130
130
|
declare const hasSkillDisplayableInfo: (skillId: SKILL_NAMES) => boolean;
|
|
131
131
|
declare const isActivableSkills: (skill: SKILL_NAMES) => boolean;
|
|
132
132
|
declare const isSelectPlayersSkills: (skill: SKILL_NAMES) => boolean;
|
|
133
|
+
/**
|
|
134
|
+
* Parmi les compétences à sélection de joueurs, celles dont les cibles sont ses
|
|
135
|
+
* propres coéquipiers et non l'équipe adverse.
|
|
136
|
+
*
|
|
137
|
+
* Sauvagerie Animale frappe un coéquipier adjacent : le rulebook laisse le
|
|
138
|
+
* choix au coach (« one Standing team-mate of your choice »), alors que le jet
|
|
139
|
+
* est résolu côté serveur en une seule requête. On ne peut donc pas demander la
|
|
140
|
+
* victime au moment du jet — le coach la désigne à l'avance, comme pour les
|
|
141
|
+
* autres préférences de compétence.
|
|
142
|
+
*/
|
|
143
|
+
declare const isSelectTeamMatesSkills: (skill: SKILL_NAMES) => boolean;
|
|
133
144
|
declare const hasSkillForPlayer: (playerWithSkill: PlayerWithSkill, playerTarget: Player, skillId: SKILL_NAMES) => boolean;
|
|
134
145
|
declare function getStarLimit(teamPlayers: PlayerWithSkill[]): number;
|
|
135
146
|
declare function getSpecialistLimit(teamPlayers: PlayerWithSkill[]): number;
|
|
@@ -175,4 +186,4 @@ declare const helpSkillsToDisplay: {
|
|
|
175
186
|
};
|
|
176
187
|
};
|
|
177
188
|
declare const hasToAgilityJumpUp: (player: PlayerWithSkill) => boolean;
|
|
178
|
-
export { BIG_GUY_LIMIT, getDisturbingPresenceMalus, getNoTurnoverSkill, getPlayersWithSkill, getSkill, getSkillDisplayedWithCarrer, getSkillLimitSizeTeam, getSpecialistLimit, getStarLimit, hasSkill, hasSkillDisplayableInfo, hasSkillForPlayer, hasToAgilityJumpUp, hasUsedSkill, helpSkillsToDisplay, isActivableSkills, isNoTurnoverSkill, isSelectPlayersSkills, isSpecialSkill, SKILL_DURATION, SKILL_INFO_ACTIVE, SKILL_INFO_INACTIVE, SKILL_IS_2025, SKILL_MIGRATION_2025, SKILL_NAMES, SKILL_TYPE, SKILLS, useSkill, };
|
|
189
|
+
export { BIG_GUY_LIMIT, getDisturbingPresenceMalus, getNoTurnoverSkill, getPlayersWithSkill, getSkill, getSkillDisplayedWithCarrer, getSkillLimitSizeTeam, getSpecialistLimit, getStarLimit, hasSkill, hasSkillDisplayableInfo, hasSkillForPlayer, hasToAgilityJumpUp, hasUsedSkill, helpSkillsToDisplay, isActivableSkills, isNoTurnoverSkill, isSelectPlayersSkills, isSelectTeamMatesSkills, isSpecialSkill, SKILL_DURATION, SKILL_INFO_ACTIVE, SKILL_INFO_INACTIVE, SKILL_IS_2025, SKILL_MIGRATION_2025, SKILL_NAMES, SKILL_TYPE, SKILLS, useSkill, };
|
package/dist/skill.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.SKILLS = exports.SKILL_TYPE = exports.SKILL_NAMES = exports.SKILL_MIGRATION_2025 = exports.SKILL_IS_2025 = exports.SKILL_INFO_INACTIVE = exports.SKILL_INFO_ACTIVE = exports.SKILL_DURATION = exports.isSpecialSkill = exports.isSelectPlayersSkills = exports.isActivableSkills = exports.helpSkillsToDisplay = exports.hasToAgilityJumpUp = exports.hasSkillForPlayer = exports.hasSkillDisplayableInfo = exports.getPlayersWithSkill = exports.BIG_GUY_LIMIT = void 0;
|
|
3
|
+
exports.SKILLS = exports.SKILL_TYPE = exports.SKILL_NAMES = exports.SKILL_MIGRATION_2025 = exports.SKILL_IS_2025 = exports.SKILL_INFO_INACTIVE = exports.SKILL_INFO_ACTIVE = exports.SKILL_DURATION = exports.isSpecialSkill = exports.isSelectTeamMatesSkills = exports.isSelectPlayersSkills = exports.isActivableSkills = exports.helpSkillsToDisplay = exports.hasToAgilityJumpUp = exports.hasSkillForPlayer = exports.hasSkillDisplayableInfo = exports.getPlayersWithSkill = exports.BIG_GUY_LIMIT = void 0;
|
|
4
4
|
exports.getDisturbingPresenceMalus = getDisturbingPresenceMalus;
|
|
5
5
|
exports.getNoTurnoverSkill = getNoTurnoverSkill;
|
|
6
6
|
exports.getSkill = getSkill;
|
|
@@ -405,10 +405,25 @@ const isActivableSkills = (skill) => {
|
|
|
405
405
|
};
|
|
406
406
|
exports.isActivableSkills = isActivableSkills;
|
|
407
407
|
const isSelectPlayersSkills = (skill) => {
|
|
408
|
-
const activables = [SKILL_NAMES.DIVING_TACKLE];
|
|
408
|
+
const activables = [SKILL_NAMES.DIVING_TACKLE, SKILL_NAMES.ANIMAL_SAVAGERY];
|
|
409
409
|
return activables.includes(skill);
|
|
410
410
|
};
|
|
411
411
|
exports.isSelectPlayersSkills = isSelectPlayersSkills;
|
|
412
|
+
/**
|
|
413
|
+
* Parmi les compétences à sélection de joueurs, celles dont les cibles sont ses
|
|
414
|
+
* propres coéquipiers et non l'équipe adverse.
|
|
415
|
+
*
|
|
416
|
+
* Sauvagerie Animale frappe un coéquipier adjacent : le rulebook laisse le
|
|
417
|
+
* choix au coach (« one Standing team-mate of your choice »), alors que le jet
|
|
418
|
+
* est résolu côté serveur en une seule requête. On ne peut donc pas demander la
|
|
419
|
+
* victime au moment du jet — le coach la désigne à l'avance, comme pour les
|
|
420
|
+
* autres préférences de compétence.
|
|
421
|
+
*/
|
|
422
|
+
const isSelectTeamMatesSkills = (skill) => {
|
|
423
|
+
const teamMates = [SKILL_NAMES.ANIMAL_SAVAGERY];
|
|
424
|
+
return teamMates.includes(skill);
|
|
425
|
+
};
|
|
426
|
+
exports.isSelectTeamMatesSkills = isSelectTeamMatesSkills;
|
|
412
427
|
const hasSkillForPlayer = (playerWithSkill, playerTarget, skillId) => {
|
|
413
428
|
if (hasSkill(playerWithSkill, skillId)) {
|
|
414
429
|
const skill = getSkill(playerWithSkill, skillId);
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Sauvagerie Animale — choix de la victime.
|
|
3
|
+
*
|
|
4
|
+
* Le rulebook laisse la victime au choix du coach (« one Standing team-mate of
|
|
5
|
+
* your choice »). Le jet étant résolu côté serveur au milieu d'une action déjà
|
|
6
|
+
* déclarée, on ne peut pas la demander sur le moment : le coach exprime une
|
|
7
|
+
* intention à l'avance, comme pour Glissade Contrôlée.
|
|
8
|
+
*/
|
|
9
|
+
export declare enum AnimalSavageryStrategy {
|
|
10
|
+
/** Le porteur du ballon est épargné tant qu'un autre coéquipier est adjacent. */
|
|
11
|
+
AVOID_BALL_CARRIER = "AVOID_BALL_CARRIER",
|
|
12
|
+
/** Les coéquipiers cochés, dans l'ordre de la liste. */
|
|
13
|
+
DESIGNATED = "DESIGNATED",
|
|
14
|
+
/** La meilleure armure : celui qui encaissera le mieux. */
|
|
15
|
+
TOUGHEST = "TOUGHEST",
|
|
16
|
+
/** Le moins d'expérience : on protège ses joueurs les plus avancés. */
|
|
17
|
+
LEAST_VALUABLE = "LEAST_VALUABLE",
|
|
18
|
+
/** Tirage au sort parmi les coéquipiers adjacents. */
|
|
19
|
+
RANDOM = "RANDOM"
|
|
20
|
+
}
|
|
21
|
+
export interface AnimalSavageryPreference {
|
|
22
|
+
strategy: AnimalSavageryStrategy;
|
|
23
|
+
/** Ids des coéquipiers désignés, dans l'ordre, pour DESIGNATED. */
|
|
24
|
+
designated?: string[];
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Épargner le porteur du ballon est le comportement par défaut : un coach à qui
|
|
28
|
+
* on laisse le choix n'assommerait jamais son propre porteur, et la morsure du
|
|
29
|
+
* vampire l'évite déjà de la même manière.
|
|
30
|
+
*/
|
|
31
|
+
export declare const DEFAULT_ANIMAL_SAVAGERY_STRATEGY = AnimalSavageryStrategy.AVOID_BALL_CARRIER;
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.DEFAULT_ANIMAL_SAVAGERY_STRATEGY = exports.AnimalSavageryStrategy = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* Sauvagerie Animale — choix de la victime.
|
|
6
|
+
*
|
|
7
|
+
* Le rulebook laisse la victime au choix du coach (« one Standing team-mate of
|
|
8
|
+
* your choice »). Le jet étant résolu côté serveur au milieu d'une action déjà
|
|
9
|
+
* déclarée, on ne peut pas la demander sur le moment : le coach exprime une
|
|
10
|
+
* intention à l'avance, comme pour Glissade Contrôlée.
|
|
11
|
+
*/
|
|
12
|
+
var AnimalSavageryStrategy;
|
|
13
|
+
(function (AnimalSavageryStrategy) {
|
|
14
|
+
/** Le porteur du ballon est épargné tant qu'un autre coéquipier est adjacent. */
|
|
15
|
+
AnimalSavageryStrategy["AVOID_BALL_CARRIER"] = "AVOID_BALL_CARRIER";
|
|
16
|
+
/** Les coéquipiers cochés, dans l'ordre de la liste. */
|
|
17
|
+
AnimalSavageryStrategy["DESIGNATED"] = "DESIGNATED";
|
|
18
|
+
/** La meilleure armure : celui qui encaissera le mieux. */
|
|
19
|
+
AnimalSavageryStrategy["TOUGHEST"] = "TOUGHEST";
|
|
20
|
+
/** Le moins d'expérience : on protège ses joueurs les plus avancés. */
|
|
21
|
+
AnimalSavageryStrategy["LEAST_VALUABLE"] = "LEAST_VALUABLE";
|
|
22
|
+
/** Tirage au sort parmi les coéquipiers adjacents. */
|
|
23
|
+
AnimalSavageryStrategy["RANDOM"] = "RANDOM";
|
|
24
|
+
})(AnimalSavageryStrategy || (exports.AnimalSavageryStrategy = AnimalSavageryStrategy = {}));
|
|
25
|
+
/**
|
|
26
|
+
* Épargner le porteur du ballon est le comportement par défaut : un coach à qui
|
|
27
|
+
* on laisse le choix n'assommerait jamais son propre porteur, et la morsure du
|
|
28
|
+
* vampire l'évite déjà de la même manière.
|
|
29
|
+
*/
|
|
30
|
+
exports.DEFAULT_ANIMAL_SAVAGERY_STRATEGY = AnimalSavageryStrategy.AVOID_BALL_CARRIER;
|
package/package.json
CHANGED
package/skill.ts
CHANGED
|
@@ -433,10 +433,25 @@ const isActivableSkills = (skill: SKILL_NAMES) => {
|
|
|
433
433
|
};
|
|
434
434
|
|
|
435
435
|
const isSelectPlayersSkills = (skill: SKILL_NAMES) => {
|
|
436
|
-
const activables = [SKILL_NAMES.DIVING_TACKLE];
|
|
436
|
+
const activables = [SKILL_NAMES.DIVING_TACKLE, SKILL_NAMES.ANIMAL_SAVAGERY];
|
|
437
437
|
return activables.includes(skill);
|
|
438
438
|
};
|
|
439
439
|
|
|
440
|
+
/**
|
|
441
|
+
* Parmi les compétences à sélection de joueurs, celles dont les cibles sont ses
|
|
442
|
+
* propres coéquipiers et non l'équipe adverse.
|
|
443
|
+
*
|
|
444
|
+
* Sauvagerie Animale frappe un coéquipier adjacent : le rulebook laisse le
|
|
445
|
+
* choix au coach (« one Standing team-mate of your choice »), alors que le jet
|
|
446
|
+
* est résolu côté serveur en une seule requête. On ne peut donc pas demander la
|
|
447
|
+
* victime au moment du jet — le coach la désigne à l'avance, comme pour les
|
|
448
|
+
* autres préférences de compétence.
|
|
449
|
+
*/
|
|
450
|
+
const isSelectTeamMatesSkills = (skill: SKILL_NAMES) => {
|
|
451
|
+
const teamMates = [SKILL_NAMES.ANIMAL_SAVAGERY];
|
|
452
|
+
return teamMates.includes(skill);
|
|
453
|
+
};
|
|
454
|
+
|
|
440
455
|
const hasSkillForPlayer = (
|
|
441
456
|
playerWithSkill: PlayerWithSkill,
|
|
442
457
|
playerTarget: Player,
|
|
@@ -608,6 +623,7 @@ export {
|
|
|
608
623
|
isActivableSkills,
|
|
609
624
|
isNoTurnoverSkill,
|
|
610
625
|
isSelectPlayersSkills,
|
|
626
|
+
isSelectTeamMatesSkills,
|
|
611
627
|
isSpecialSkill,
|
|
612
628
|
SKILL_DURATION,
|
|
613
629
|
SKILL_INFO_ACTIVE,
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Sauvagerie Animale — choix de la victime.
|
|
3
|
+
*
|
|
4
|
+
* Le rulebook laisse la victime au choix du coach (« one Standing team-mate of
|
|
5
|
+
* your choice »). Le jet étant résolu côté serveur au milieu d'une action déjà
|
|
6
|
+
* déclarée, on ne peut pas la demander sur le moment : le coach exprime une
|
|
7
|
+
* intention à l'avance, comme pour Glissade Contrôlée.
|
|
8
|
+
*/
|
|
9
|
+
export enum AnimalSavageryStrategy {
|
|
10
|
+
/** Le porteur du ballon est épargné tant qu'un autre coéquipier est adjacent. */
|
|
11
|
+
AVOID_BALL_CARRIER = "AVOID_BALL_CARRIER",
|
|
12
|
+
/** Les coéquipiers cochés, dans l'ordre de la liste. */
|
|
13
|
+
DESIGNATED = "DESIGNATED",
|
|
14
|
+
/** La meilleure armure : celui qui encaissera le mieux. */
|
|
15
|
+
TOUGHEST = "TOUGHEST",
|
|
16
|
+
/** Le moins d'expérience : on protège ses joueurs les plus avancés. */
|
|
17
|
+
LEAST_VALUABLE = "LEAST_VALUABLE",
|
|
18
|
+
/** Tirage au sort parmi les coéquipiers adjacents. */
|
|
19
|
+
RANDOM = "RANDOM",
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
export interface AnimalSavageryPreference {
|
|
23
|
+
strategy: AnimalSavageryStrategy;
|
|
24
|
+
/** Ids des coéquipiers désignés, dans l'ordre, pour DESIGNATED. */
|
|
25
|
+
designated?: string[];
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
/**
|
|
29
|
+
* Épargner le porteur du ballon est le comportement par défaut : un coach à qui
|
|
30
|
+
* on laisse le choix n'assommerait jamais son propre porteur, et la morsure du
|
|
31
|
+
* vampire l'évite déjà de la même manière.
|
|
32
|
+
*/
|
|
33
|
+
export const DEFAULT_ANIMAL_SAVAGERY_STRATEGY =
|
|
34
|
+
AnimalSavageryStrategy.AVOID_BALL_CARRIER;
|