enefel 2.3.0 → 2.4.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/index.js CHANGED
@@ -721,7 +721,8 @@ function canPass(player, playerTeam, playerIdWithBall) {
721
721
  player.id === playerIdWithBall);
722
722
  }
723
723
  function canEndTurn(player, game) {
724
- return (player.date_next_action === null &&
724
+ return ((0, status_1.hasStatusOnField)(player) &&
725
+ player.date_next_action === null &&
725
726
  (player.has_action === false || (0, player_1.hasMove)(player, game)));
726
727
  }
727
728
  function canThrowTeamMate(player, target, playerTeam) {
package/dist/item.d.ts CHANGED
@@ -13,7 +13,8 @@ declare enum ITEM_ID {
13
13
  GREEN_PILL = "green-pill",
14
14
  NEWSPAPER = "newspaper",
15
15
  BOOSTER = "booster",
16
- ENERGY_GEL = "energy-gel"
16
+ ENERGY_GEL = "energy-gel",
17
+ SMELLING_SALTS = "smelling-salts"
17
18
  }
18
19
  declare enum ITEM_TYPE {
19
20
  CONSUMABLE = "consumable",
@@ -21,4 +22,4 @@ declare enum ITEM_TYPE {
21
22
  FILE = "file"
22
23
  }
23
24
  declare const getQteFromRarity: (rarity: RARITY) => 1 | 10 | 100 | 1000 | 10000 | undefined;
24
- export { getQteFromRarity, ITEM_ID, ITEM_TYPE, RARITY };
25
+ export { ITEM_ID, ITEM_TYPE, RARITY, getQteFromRarity };
package/dist/item.js CHANGED
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.RARITY = exports.ITEM_TYPE = exports.ITEM_ID = exports.getQteFromRarity = void 0;
3
+ exports.getQteFromRarity = exports.RARITY = exports.ITEM_TYPE = exports.ITEM_ID = void 0;
4
4
  var RARITY;
5
5
  (function (RARITY) {
6
6
  RARITY["COMMUN"] = "c";
@@ -19,6 +19,7 @@ var ITEM_ID;
19
19
  ITEM_ID["NEWSPAPER"] = "newspaper";
20
20
  ITEM_ID["BOOSTER"] = "booster";
21
21
  ITEM_ID["ENERGY_GEL"] = "energy-gel";
22
+ ITEM_ID["SMELLING_SALTS"] = "smelling-salts";
22
23
  })(ITEM_ID || (exports.ITEM_ID = ITEM_ID = {}));
23
24
  var ITEM_TYPE;
24
25
  (function (ITEM_TYPE) {
package/dist/itemUsage.js CHANGED
@@ -1,6 +1,8 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.getRemainingUsages = exports.canUseItem = exports.countItemUsagesInKickoff = void 0;
4
+ const item_1 = require("item");
5
+ const status_1 = require("status");
4
6
  const countItemUsagesInKickoff = (player, itemId) => {
5
7
  if (!player.tempCarac) {
6
8
  return 0;
@@ -23,11 +25,16 @@ const countItemUsagesInKickoff = (player, itemId) => {
23
25
  };
24
26
  exports.countItemUsagesInKickoff = countItemUsagesInKickoff;
25
27
  const canUseItem = (player, itemId, maxUsesPerKickoff) => {
26
- if (!maxUsesPerKickoff || maxUsesPerKickoff <= 0) {
27
- return true; // Pas de limite
28
+ if (maxUsesPerKickoff && maxUsesPerKickoff > 0) {
29
+ const currentUsages = (0, exports.countItemUsagesInKickoff)(player, itemId);
30
+ if (currentUsages >= maxUsesPerKickoff) {
31
+ return false;
32
+ }
28
33
  }
29
- const currentUsages = (0, exports.countItemUsagesInKickoff)(player, itemId);
30
- return currentUsages < maxUsesPerKickoff;
34
+ if (itemId === item_1.ITEM_ID.SMELLING_SALTS) {
35
+ return player.status === status_1.PLAYER_STATUS.KO;
36
+ }
37
+ return true;
31
38
  };
32
39
  exports.canUseItem = canUseItem;
33
40
  const getRemainingUsages = (player, itemId, maxUsesPerKickoff) => {
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "enefel",
3
- "version": "2.3.0",
3
+ "version": "2.4.0",
4
4
  "lockfileVersion": 2,
5
5
  "requires": true,
6
6
  "packages": {
7
7
  "": {
8
8
  "name": "enefel",
9
- "version": "2.3.0",
9
+ "version": "2.4.0",
10
10
  "license": "MIT",
11
11
  "dependencies": {
12
12
  "seedrandom": "3.0.5",
package/dist/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "enefel",
3
- "version": "2.3.0",
3
+ "version": "2.4.0",
4
4
  "description": "Blood Bowl 3 game engine",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
package/index.ts CHANGED
@@ -820,6 +820,7 @@ function canPass(
820
820
 
821
821
  function canEndTurn(player: PlayerWithSkill, game: Game) {
822
822
  return (
823
+ hasStatusOnField(player) &&
823
824
  player.date_next_action === null &&
824
825
  (player.has_action === false || hasMove(player, game))
825
826
  );
package/item.ts CHANGED
@@ -15,6 +15,7 @@ enum ITEM_ID {
15
15
  NEWSPAPER = "newspaper",
16
16
  BOOSTER = "booster",
17
17
  ENERGY_GEL = "energy-gel",
18
+ SMELLING_SALTS = "smelling-salts",
18
19
  }
19
20
 
20
21
  enum ITEM_TYPE {
@@ -41,4 +42,4 @@ const getQteFromRarity = (rarity: RARITY) => {
41
42
  }
42
43
  };
43
44
 
44
- export { getQteFromRarity, ITEM_ID, ITEM_TYPE, RARITY };
45
+ export { ITEM_ID, ITEM_TYPE, RARITY, getQteFromRarity };
package/itemUsage.ts CHANGED
@@ -1,3 +1,5 @@
1
+ import { ITEM_ID } from "item";
2
+ import { PLAYER_STATUS } from "status";
1
3
  import { Player } from "./types/models";
2
4
 
3
5
  export interface TempCaracEffect {
@@ -39,12 +41,18 @@ export const canUseItem = (
39
41
  itemId: string,
40
42
  maxUsesPerKickoff?: number
41
43
  ): boolean => {
42
- if (!maxUsesPerKickoff || maxUsesPerKickoff <= 0) {
43
- return true; // Pas de limite
44
+ if (maxUsesPerKickoff && maxUsesPerKickoff > 0) {
45
+ const currentUsages = countItemUsagesInKickoff(player, itemId);
46
+ if (currentUsages >= maxUsesPerKickoff) {
47
+ return false;
48
+ }
44
49
  }
45
50
 
46
- const currentUsages = countItemUsagesInKickoff(player, itemId);
47
- return currentUsages < maxUsesPerKickoff;
51
+ if (itemId === ITEM_ID.SMELLING_SALTS) {
52
+ return player.status === PLAYER_STATUS.KO;
53
+ }
54
+
55
+ return true;
48
56
  };
49
57
 
50
58
  export const getRemainingUsages = (
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "enefel",
3
- "version": "2.3.0",
3
+ "version": "2.4.0",
4
4
  "description": "Blood Bowl 3 game engine",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",