enefel 1.0.128 → 1.0.129
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/game.js +23 -2
- package/index.js +7 -2
- package/package.json +1 -1
- package/time.js +10 -0
package/game.js
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
const Random = require("./random");
|
|
2
|
+
const { getTime, TYPE_TIMER } = require("./time");
|
|
2
3
|
|
|
3
4
|
const GAME_TYPE = {
|
|
4
5
|
DIVISION: "division",
|
|
@@ -14,6 +15,7 @@ const GAME_STATUS = {
|
|
|
14
15
|
TD: 3,
|
|
15
16
|
END: 4,
|
|
16
17
|
FINISH: 5, // pop and po calculated
|
|
18
|
+
HALFTIME: 6,
|
|
17
19
|
};
|
|
18
20
|
|
|
19
21
|
const hasGameCasualty = (game) => {
|
|
@@ -34,10 +36,29 @@ const getGameFan = (game) => {
|
|
|
34
36
|
return Random.d6(2) + getGameFanBonus(game);
|
|
35
37
|
};
|
|
36
38
|
|
|
39
|
+
const getDateStartHalfTime = (game) => {
|
|
40
|
+
const start = new Date(game.date_start);
|
|
41
|
+
const end = new Date(game.date_end);
|
|
42
|
+
return new Date(start.getTime() + (end.getTime() - start.getTime()) / 2);
|
|
43
|
+
};
|
|
44
|
+
|
|
45
|
+
const getDateEndHalfTime = (game) => {
|
|
46
|
+
const half = getDateStartHalfTime(game);
|
|
47
|
+
return new Date(half.getTime() + getTime(TYPE_TIMER.HALF_TIME_PAUSE) * 1000);
|
|
48
|
+
};
|
|
49
|
+
|
|
50
|
+
const isGameFirstHalfTime = (game) => {
|
|
51
|
+
const now = new Date(Date.now());
|
|
52
|
+
return getDateStartHalfTime(game) - now > 0;
|
|
53
|
+
};
|
|
54
|
+
|
|
37
55
|
module.exports = {
|
|
38
|
-
GAME_TYPE,
|
|
39
56
|
GAME_STATUS,
|
|
40
|
-
|
|
57
|
+
GAME_TYPE,
|
|
58
|
+
getDateEndHalfTime,
|
|
59
|
+
getDateStartHalfTime,
|
|
41
60
|
getGameFan,
|
|
42
61
|
getGameFanBonus,
|
|
62
|
+
hasGameCasualty,
|
|
63
|
+
isGameFirstHalfTime,
|
|
43
64
|
};
|
package/index.js
CHANGED
|
@@ -807,11 +807,16 @@ function isGameRunning(game) {
|
|
|
807
807
|
return (
|
|
808
808
|
game.status === GAME_STATUS.BEFORE ||
|
|
809
809
|
game.status === GAME_STATUS.ONGOING ||
|
|
810
|
-
game.status === GAME_STATUS.TD
|
|
810
|
+
game.status === GAME_STATUS.TD ||
|
|
811
|
+
game.status === GAME_STATUS.HALFTIME
|
|
811
812
|
);
|
|
812
813
|
}
|
|
813
814
|
function isSetUp(game) {
|
|
814
|
-
return
|
|
815
|
+
return (
|
|
816
|
+
game.status === GAME_STATUS.BEFORE ||
|
|
817
|
+
game.status === GAME_STATUS.TD ||
|
|
818
|
+
game.status === GAME_STATUS.HALFTIME
|
|
819
|
+
);
|
|
815
820
|
}
|
|
816
821
|
|
|
817
822
|
function getTeamColor(game, side) {
|
package/package.json
CHANGED
package/time.js
CHANGED
|
@@ -12,6 +12,8 @@ const TYPE_TIMER = {
|
|
|
12
12
|
TURNOVER: "turnover",
|
|
13
13
|
WAITING_GAME: "waitingGame",
|
|
14
14
|
TIME_SEASON_IF_NO_LEAGUE: "timeSeasonIfNoLeague",
|
|
15
|
+
HALF_TIME_GAME: "halfTime",
|
|
16
|
+
HALF_TIME_PAUSE: "halfTimePause",
|
|
15
17
|
};
|
|
16
18
|
|
|
17
19
|
const getTime = (type) => {
|
|
@@ -26,6 +28,7 @@ const getTime = (type) => {
|
|
|
26
28
|
|
|
27
29
|
// Total game time = TIME_BEFORE + TIME_GAME
|
|
28
30
|
const TIME_GAME = 5 * 24 * 60 * 60;
|
|
31
|
+
const TIME_HALF_TIME_GAME = 6 * 24 * 60 * 60;
|
|
29
32
|
|
|
30
33
|
// Time of setup after a TD
|
|
31
34
|
const TIME_TD = 3 * 60 * 60;
|
|
@@ -38,13 +41,20 @@ const getTime = (type) => {
|
|
|
38
41
|
|
|
39
42
|
// before league games (last game end + 1 day)
|
|
40
43
|
const TIME_INIT_LEAGUE = 1 * 24 * 60 * 60;
|
|
44
|
+
|
|
41
45
|
// between each league games
|
|
42
46
|
const TIME_BETWEEN_GAME_LEAGUE = TIME_GAME + 2 * 24 * 60 * 60;
|
|
43
47
|
|
|
44
48
|
// 2 months, 30 days
|
|
45
49
|
const TIME_SEASON_IF_NO_LEAGUE = 60 * 24 * 60 * 30;
|
|
46
50
|
|
|
51
|
+
const TIME_HALF_TIME_PAUSE = 6 * 60 * 60;
|
|
52
|
+
|
|
47
53
|
switch (type) {
|
|
54
|
+
case TYPE_TIMER.HALF_TIME_GAME:
|
|
55
|
+
return TIME_HALF_TIME_GAME;
|
|
56
|
+
case TYPE_TIMER.HALF_TIME_PAUSE:
|
|
57
|
+
return TIME_HALF_TIME_PAUSE;
|
|
48
58
|
case TYPE_TIMER.ACTION_FULL:
|
|
49
59
|
return TIME_ACTION_FULL;
|
|
50
60
|
case TYPE_TIMER.TIME_SEASON_IF_NO_LEAGUE:
|