enefel 2.2.3 → 2.3.0
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/item.d.ts +2 -1
- package/dist/item.js +1 -0
- package/dist/itemUsage.d.ts +11 -0
- package/dist/itemUsage.js +40 -0
- package/dist/package-lock.json +2 -2
- package/dist/package.json +1 -1
- package/dist/race.js +1 -1
- package/dist/types/models.d.ts +3 -0
- package/item.ts +1 -0
- package/itemUsage.ts +61 -0
- package/package.json +1 -1
- package/player.ts +0 -2
- package/race.ts +1 -1
- package/types/models.ts +3 -0
package/dist/item.d.ts
CHANGED
package/dist/item.js
CHANGED
|
@@ -18,6 +18,7 @@ var ITEM_ID;
|
|
|
18
18
|
ITEM_ID["GREEN_PILL"] = "green-pill";
|
|
19
19
|
ITEM_ID["NEWSPAPER"] = "newspaper";
|
|
20
20
|
ITEM_ID["BOOSTER"] = "booster";
|
|
21
|
+
ITEM_ID["ENERGY_GEL"] = "energy-gel";
|
|
21
22
|
})(ITEM_ID || (exports.ITEM_ID = ITEM_ID = {}));
|
|
22
23
|
var ITEM_TYPE;
|
|
23
24
|
(function (ITEM_TYPE) {
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { Player } from "./types/models";
|
|
2
|
+
export interface TempCaracEffect {
|
|
3
|
+
t: number;
|
|
4
|
+
gainCarac?: string;
|
|
5
|
+
loseCarac?: string;
|
|
6
|
+
moralePenalty?: number;
|
|
7
|
+
itemId?: string;
|
|
8
|
+
}
|
|
9
|
+
export declare const countItemUsagesInKickoff: (player: Player, itemId: string) => number;
|
|
10
|
+
export declare const canUseItem: (player: Player, itemId: string, maxUsesPerKickoff?: number) => boolean;
|
|
11
|
+
export declare const getRemainingUsages: (player: Player, itemId: string, maxUsesPerKickoff?: number) => number;
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getRemainingUsages = exports.canUseItem = exports.countItemUsagesInKickoff = void 0;
|
|
4
|
+
const countItemUsagesInKickoff = (player, itemId) => {
|
|
5
|
+
if (!player.tempCarac) {
|
|
6
|
+
return 0;
|
|
7
|
+
}
|
|
8
|
+
let tempCarac;
|
|
9
|
+
try {
|
|
10
|
+
tempCarac = JSON.parse(player.tempCarac);
|
|
11
|
+
}
|
|
12
|
+
catch (e) {
|
|
13
|
+
return 0;
|
|
14
|
+
}
|
|
15
|
+
let count = 0;
|
|
16
|
+
for (const effect of Object.values(tempCarac)) {
|
|
17
|
+
// Compter tous les effets liés à cet item
|
|
18
|
+
if (effect.itemId === itemId) {
|
|
19
|
+
count++;
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
return count;
|
|
23
|
+
};
|
|
24
|
+
exports.countItemUsagesInKickoff = countItemUsagesInKickoff;
|
|
25
|
+
const canUseItem = (player, itemId, maxUsesPerKickoff) => {
|
|
26
|
+
if (!maxUsesPerKickoff || maxUsesPerKickoff <= 0) {
|
|
27
|
+
return true; // Pas de limite
|
|
28
|
+
}
|
|
29
|
+
const currentUsages = (0, exports.countItemUsagesInKickoff)(player, itemId);
|
|
30
|
+
return currentUsages < maxUsesPerKickoff;
|
|
31
|
+
};
|
|
32
|
+
exports.canUseItem = canUseItem;
|
|
33
|
+
const getRemainingUsages = (player, itemId, maxUsesPerKickoff) => {
|
|
34
|
+
if (!maxUsesPerKickoff || maxUsesPerKickoff <= 0) {
|
|
35
|
+
return -1; // Pas de limite
|
|
36
|
+
}
|
|
37
|
+
const currentUsages = (0, exports.countItemUsagesInKickoff)(player, itemId);
|
|
38
|
+
return Math.max(0, maxUsesPerKickoff - currentUsages);
|
|
39
|
+
};
|
|
40
|
+
exports.getRemainingUsages = getRemainingUsages;
|
package/dist/package-lock.json
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "enefel",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.3.0",
|
|
4
4
|
"lockfileVersion": 2,
|
|
5
5
|
"requires": true,
|
|
6
6
|
"packages": {
|
|
7
7
|
"": {
|
|
8
8
|
"name": "enefel",
|
|
9
|
-
"version": "2.
|
|
9
|
+
"version": "2.3.0",
|
|
10
10
|
"license": "MIT",
|
|
11
11
|
"dependencies": {
|
|
12
12
|
"seedrandom": "3.0.5",
|
package/dist/package.json
CHANGED
package/dist/race.js
CHANGED
|
@@ -174,7 +174,7 @@ const getPlayerAvatarPath = (player) => {
|
|
|
174
174
|
exports.getPlayerAvatarPath = getPlayerAvatarPath;
|
|
175
175
|
const getRaceFromCareer = (careerId) => {
|
|
176
176
|
const career = getCareerFromKey(careerId);
|
|
177
|
-
return career
|
|
177
|
+
return career?.badge;
|
|
178
178
|
};
|
|
179
179
|
exports.getRaceFromCareer = getRaceFromCareer;
|
|
180
180
|
const getAvatarTypeFromPlayer = (player, avatarFile) => {
|
package/dist/types/models.d.ts
CHANGED
|
@@ -120,6 +120,8 @@ export interface Player extends Point {
|
|
|
120
120
|
prevY: number | null;
|
|
121
121
|
hasEndTurn: boolean;
|
|
122
122
|
canUseSkills?: boolean;
|
|
123
|
+
stats?: Stat[];
|
|
124
|
+
team?: Team;
|
|
123
125
|
}
|
|
124
126
|
export interface PlayerWithSkill extends Player {
|
|
125
127
|
skills: PlayerSkill[];
|
|
@@ -198,6 +200,7 @@ export interface Item {
|
|
|
198
200
|
y: number;
|
|
199
201
|
type: string;
|
|
200
202
|
forUser?: boolean;
|
|
203
|
+
maxUsesPerKickoff?: number;
|
|
201
204
|
}
|
|
202
205
|
export interface UserItem {
|
|
203
206
|
id: string;
|
package/item.ts
CHANGED
package/itemUsage.ts
ADDED
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
import { Player } from "./types/models";
|
|
2
|
+
|
|
3
|
+
export interface TempCaracEffect {
|
|
4
|
+
t: number;
|
|
5
|
+
gainCarac?: string;
|
|
6
|
+
loseCarac?: string;
|
|
7
|
+
moralePenalty?: number;
|
|
8
|
+
itemId?: string;
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
export const countItemUsagesInKickoff = (
|
|
12
|
+
player: Player,
|
|
13
|
+
itemId: string
|
|
14
|
+
): number => {
|
|
15
|
+
if (!player.tempCarac) {
|
|
16
|
+
return 0;
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
let tempCarac: Record<string, TempCaracEffect>;
|
|
20
|
+
try {
|
|
21
|
+
tempCarac = JSON.parse(player.tempCarac);
|
|
22
|
+
} catch (e) {
|
|
23
|
+
return 0;
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
let count = 0;
|
|
27
|
+
for (const effect of Object.values(tempCarac)) {
|
|
28
|
+
// Compter tous les effets liés à cet item
|
|
29
|
+
if (effect.itemId === itemId) {
|
|
30
|
+
count++;
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
return count;
|
|
35
|
+
};
|
|
36
|
+
|
|
37
|
+
export const canUseItem = (
|
|
38
|
+
player: Player,
|
|
39
|
+
itemId: string,
|
|
40
|
+
maxUsesPerKickoff?: number
|
|
41
|
+
): boolean => {
|
|
42
|
+
if (!maxUsesPerKickoff || maxUsesPerKickoff <= 0) {
|
|
43
|
+
return true; // Pas de limite
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
const currentUsages = countItemUsagesInKickoff(player, itemId);
|
|
47
|
+
return currentUsages < maxUsesPerKickoff;
|
|
48
|
+
};
|
|
49
|
+
|
|
50
|
+
export const getRemainingUsages = (
|
|
51
|
+
player: Player,
|
|
52
|
+
itemId: string,
|
|
53
|
+
maxUsesPerKickoff?: number
|
|
54
|
+
): number => {
|
|
55
|
+
if (!maxUsesPerKickoff || maxUsesPerKickoff <= 0) {
|
|
56
|
+
return -1; // Pas de limite
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
const currentUsages = countItemUsagesInKickoff(player, itemId);
|
|
60
|
+
return Math.max(0, maxUsesPerKickoff - currentUsages);
|
|
61
|
+
};
|
package/package.json
CHANGED
package/player.ts
CHANGED
|
@@ -164,10 +164,8 @@ function getMaxAG(player: Player, game: Game) {
|
|
|
164
164
|
|
|
165
165
|
function getMaxMA(player: Player, game: Game) {
|
|
166
166
|
let c = getMaxCommun(player, PLAYER_CARAC.MA, game);
|
|
167
|
-
|
|
168
167
|
if (game) {
|
|
169
168
|
const maxMA = meteoMaxMA(game.meteo);
|
|
170
|
-
|
|
171
169
|
if (c > maxMA) {
|
|
172
170
|
c = maxMA;
|
|
173
171
|
}
|
package/race.ts
CHANGED
|
@@ -168,7 +168,7 @@ const getPlayerAvatarPath = (player: Player) => {
|
|
|
168
168
|
|
|
169
169
|
const getRaceFromCareer = (careerId: CAREER_ID) => {
|
|
170
170
|
const career = getCareerFromKey(careerId);
|
|
171
|
-
return career
|
|
171
|
+
return career?.badge;
|
|
172
172
|
};
|
|
173
173
|
|
|
174
174
|
const getAvatarTypeFromPlayer = (player: Player, avatarFile: string) => {
|
package/types/models.ts
CHANGED
|
@@ -124,6 +124,8 @@ export interface Player extends Point {
|
|
|
124
124
|
prevY: number | null; // add by Game
|
|
125
125
|
hasEndTurn: boolean; // add by Game
|
|
126
126
|
canUseSkills?: boolean; // add by Game
|
|
127
|
+
stats?: Stat[];
|
|
128
|
+
team?: Team;
|
|
127
129
|
}
|
|
128
130
|
|
|
129
131
|
export interface PlayerWithSkill extends Player {
|
|
@@ -208,6 +210,7 @@ export interface Item {
|
|
|
208
210
|
y: number;
|
|
209
211
|
type: string;
|
|
210
212
|
forUser?: boolean;
|
|
213
|
+
maxUsesPerKickoff?: number;
|
|
211
214
|
}
|
|
212
215
|
|
|
213
216
|
export interface UserItem {
|