trucoshi 0.2.13 → 0.2.15
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.d.ts +0 -1
- package/dist/index.js +0 -1
- package/dist/lib/classes/GameLoop.d.ts +2 -2
- package/dist/lib/classes/GameLoop.js +5 -3
- package/dist/lib/classes/Player.d.ts +1 -3
- package/dist/lib/classes/Player.js +1 -6
- package/dist/lib/types.d.ts +1 -15
- package/dist/lib/types.js +1 -17
- package/dist/types.d.ts +11 -2
- package/dist/types.js +8 -8
- package/package.json +1 -1
package/dist/index.d.ts
CHANGED
package/dist/index.js
CHANGED
|
@@ -15,5 +15,4 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
15
15
|
};
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
17
|
__exportStar(require("./lib"), exports);
|
|
18
|
-
__exportStar(require("./server"), exports);
|
|
19
18
|
__exportStar(require("./types"), exports);
|
|
@@ -4,7 +4,7 @@ import { IPlayInstance } from "./Play";
|
|
|
4
4
|
import { IPlayer } from "./Player";
|
|
5
5
|
import { ITeam } from "./Team";
|
|
6
6
|
export type IWinnerCallback = (winner: ITeam, teams: [ITeam, ITeam]) => Promise<void>;
|
|
7
|
-
export type ITurnCallback = (play: IPlayInstance) => Promise<void>;
|
|
7
|
+
export type ITurnCallback = (play: IPlayInstance, newHandJustStarted: boolean) => Promise<void>;
|
|
8
8
|
export type ITrucoCallback = (play: IPlayInstance) => Promise<void>;
|
|
9
9
|
export interface IGameLoop {
|
|
10
10
|
_onTruco: ITrucoCallback;
|
|
@@ -12,7 +12,7 @@ export interface IGameLoop {
|
|
|
12
12
|
_onWinner: IWinnerCallback;
|
|
13
13
|
currentPlayer: IPlayer | null;
|
|
14
14
|
currentHand: IHand | null;
|
|
15
|
-
|
|
15
|
+
lastCheckedHand: number | null;
|
|
16
16
|
teams: Array<ITeam>;
|
|
17
17
|
winner: ITeam | null;
|
|
18
18
|
onTurn: (callback: ITurnCallback) => IGameLoop;
|
|
@@ -20,7 +20,7 @@ const GameLoop = (match) => {
|
|
|
20
20
|
winner: null,
|
|
21
21
|
currentPlayer: null,
|
|
22
22
|
currentHand: null,
|
|
23
|
-
|
|
23
|
+
lastCheckedHand: null,
|
|
24
24
|
onTruco: (callback) => {
|
|
25
25
|
gameloop._onTruco = callback;
|
|
26
26
|
return gameloop;
|
|
@@ -34,6 +34,7 @@ const GameLoop = (match) => {
|
|
|
34
34
|
return gameloop;
|
|
35
35
|
},
|
|
36
36
|
begin() {
|
|
37
|
+
var _a;
|
|
37
38
|
return __awaiter(this, void 0, void 0, function* () {
|
|
38
39
|
gameloop.teams = match.teams;
|
|
39
40
|
while (!match.winner) {
|
|
@@ -55,12 +56,13 @@ const GameLoop = (match) => {
|
|
|
55
56
|
if (play.state === types_1.EHandState.WAITING_PLAY) {
|
|
56
57
|
play.player.setTurn(true);
|
|
57
58
|
try {
|
|
58
|
-
|
|
59
|
+
const newHandJustStarted = gameloop.lastCheckedHand !== ((_a = play.prevHand) === null || _a === void 0 ? void 0 : _a.idx);
|
|
60
|
+
gameloop.lastCheckedHand = play.prevHand ? play.prevHand.idx : null;
|
|
61
|
+
yield gameloop._onTurn(play, newHandJustStarted);
|
|
59
62
|
}
|
|
60
63
|
catch (e) {
|
|
61
64
|
console.error("GAME LOOP ERROR", e);
|
|
62
65
|
}
|
|
63
|
-
gameloop.previousHand = match.prevHand;
|
|
64
66
|
play.player.setTurn(false);
|
|
65
67
|
continue;
|
|
66
68
|
}
|
|
@@ -14,19 +14,17 @@ export interface IPlayer {
|
|
|
14
14
|
isOwner: boolean;
|
|
15
15
|
disabled: boolean;
|
|
16
16
|
ready: boolean;
|
|
17
|
-
connected: boolean;
|
|
18
17
|
setTurn(turn: boolean): void;
|
|
19
18
|
getPublicPlayer(): IPublicPlayer;
|
|
20
19
|
setSession(session: string): void;
|
|
21
20
|
enable(): void;
|
|
22
21
|
disable(): void;
|
|
23
|
-
setConnected(connected: boolean): void;
|
|
24
22
|
setOwner(owner: boolean): void;
|
|
25
23
|
setReady(ready: boolean): void;
|
|
26
24
|
setHand(hand: Array<ICard>): Array<ICard>;
|
|
27
25
|
useCard(idx: number, card: ICard): ICard | null;
|
|
28
26
|
}
|
|
29
|
-
export type IPublicPlayer = Pick<IPlayer, "id" | "key" | "disabled" | "ready" | "
|
|
27
|
+
export type IPublicPlayer = Pick<IPlayer, "id" | "key" | "disabled" | "ready" | "hand" | "usedHand" | "prevHand" | "teamIdx" | "session" | "isTurn" | "isOwner"> & {
|
|
30
28
|
commands: Array<ECommand>;
|
|
31
29
|
};
|
|
32
30
|
export declare function Player(key: string, id: string, teamIdx: number, isOwner?: boolean): IPlayer;
|
|
@@ -14,7 +14,6 @@ function Player(key, id, teamIdx, isOwner = false) {
|
|
|
14
14
|
isOwner,
|
|
15
15
|
isTurn: false,
|
|
16
16
|
disabled: false,
|
|
17
|
-
connected: false,
|
|
18
17
|
ready: false,
|
|
19
18
|
get commands() {
|
|
20
19
|
return Array.from(player._commands.values());
|
|
@@ -26,11 +25,10 @@ function Player(key, id, teamIdx, isOwner = false) {
|
|
|
26
25
|
player.isTurn = turn;
|
|
27
26
|
},
|
|
28
27
|
getPublicPlayer() {
|
|
29
|
-
const { id, key, commands,
|
|
28
|
+
const { id, key, commands, disabled, ready, usedHand, prevHand, teamIdx, isTurn, isOwner, } = player;
|
|
30
29
|
return {
|
|
31
30
|
id,
|
|
32
31
|
key,
|
|
33
|
-
connected,
|
|
34
32
|
commands,
|
|
35
33
|
disabled,
|
|
36
34
|
ready,
|
|
@@ -52,9 +50,6 @@ function Player(key, id, teamIdx, isOwner = false) {
|
|
|
52
50
|
disable() {
|
|
53
51
|
player.disabled = true;
|
|
54
52
|
},
|
|
55
|
-
setConnected(connected) {
|
|
56
|
-
player.connected = connected;
|
|
57
|
-
},
|
|
58
53
|
setReady(ready) {
|
|
59
54
|
player.ready = ready;
|
|
60
55
|
},
|
package/dist/lib/types.d.ts
CHANGED
|
@@ -1,26 +1,12 @@
|
|
|
1
|
+
import { ECommand, EEnvidoCommand } from "../types";
|
|
1
2
|
import { IPlayer } from "./classes/Player";
|
|
2
3
|
import { ITeam } from "./classes/Team";
|
|
3
|
-
export declare enum ESayCommand {
|
|
4
|
-
QUIERO = "QUIERO",
|
|
5
|
-
NO_QUIERO = "NO_QUIERO",
|
|
6
|
-
TRUCO = "TRUCO",
|
|
7
|
-
MAZO = "MAZO",
|
|
8
|
-
FLOR = "FLOR",
|
|
9
|
-
CONTRAFLOR = "CONTRAFLOR"
|
|
10
|
-
}
|
|
11
|
-
export declare enum EEnvidoCommand {
|
|
12
|
-
ENVIDO = "ENVIDO",
|
|
13
|
-
ENVIDO_ENVIDO = "ENVIDO_ENVIDO",
|
|
14
|
-
REAL_ENVIDO = "REAL_ENVIDO",
|
|
15
|
-
FALTA_ENVIDO = "FALTA_ENVIDO"
|
|
16
|
-
}
|
|
17
4
|
export declare enum EHandState {
|
|
18
5
|
WAITING_PLAY = "WAITING_PLAY",
|
|
19
6
|
WAITING_FOR_TRUCO_ANSWER = "WAITING_FOR_TRUCO_ANSWER",
|
|
20
7
|
WAITING_ENVIDO_ANSWER = "WAITING_ENVIDO_ANSWER",
|
|
21
8
|
FINISHED = "FINISHED"
|
|
22
9
|
}
|
|
23
|
-
export type ECommand = ESayCommand | EEnvidoCommand;
|
|
24
10
|
export declare enum GAME_ERROR {
|
|
25
11
|
MATCH_ALREADY_STARTED = "MATCH_ALREADY_STARTED",
|
|
26
12
|
LOBBY_IS_FULL = "LOBBY_IS_FULL",
|
package/dist/lib/types.js
CHANGED
|
@@ -1,22 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.GAME_ERROR = exports.EHandState =
|
|
4
|
-
var ESayCommand;
|
|
5
|
-
(function (ESayCommand) {
|
|
6
|
-
ESayCommand["QUIERO"] = "QUIERO";
|
|
7
|
-
ESayCommand["NO_QUIERO"] = "NO_QUIERO";
|
|
8
|
-
ESayCommand["TRUCO"] = "TRUCO";
|
|
9
|
-
ESayCommand["MAZO"] = "MAZO";
|
|
10
|
-
ESayCommand["FLOR"] = "FLOR";
|
|
11
|
-
ESayCommand["CONTRAFLOR"] = "CONTRAFLOR";
|
|
12
|
-
})(ESayCommand = exports.ESayCommand || (exports.ESayCommand = {}));
|
|
13
|
-
var EEnvidoCommand;
|
|
14
|
-
(function (EEnvidoCommand) {
|
|
15
|
-
EEnvidoCommand["ENVIDO"] = "ENVIDO";
|
|
16
|
-
EEnvidoCommand["ENVIDO_ENVIDO"] = "ENVIDO_ENVIDO";
|
|
17
|
-
EEnvidoCommand["REAL_ENVIDO"] = "REAL_ENVIDO";
|
|
18
|
-
EEnvidoCommand["FALTA_ENVIDO"] = "FALTA_ENVIDO";
|
|
19
|
-
})(EEnvidoCommand = exports.EEnvidoCommand || (exports.EEnvidoCommand = {}));
|
|
3
|
+
exports.GAME_ERROR = exports.EHandState = void 0;
|
|
20
4
|
var EHandState;
|
|
21
5
|
(function (EHandState) {
|
|
22
6
|
EHandState["WAITING_PLAY"] = "WAITING_PLAY";
|
package/dist/types.d.ts
CHANGED
|
@@ -14,6 +14,7 @@ export interface IPublicMatch {
|
|
|
14
14
|
rounds: IPlayedCard[][];
|
|
15
15
|
}
|
|
16
16
|
export interface IPublicMatchInfo {
|
|
17
|
+
ownerId: string;
|
|
17
18
|
matchSessionId: string;
|
|
18
19
|
players: number;
|
|
19
20
|
maxPlayers: number;
|
|
@@ -26,7 +27,8 @@ export interface IChatMessage {
|
|
|
26
27
|
id: string;
|
|
27
28
|
key: string;
|
|
28
29
|
};
|
|
29
|
-
system
|
|
30
|
+
system?: boolean;
|
|
31
|
+
command?: boolean;
|
|
30
32
|
content: string;
|
|
31
33
|
}
|
|
32
34
|
export interface IChatRoom {
|
|
@@ -34,8 +36,14 @@ export interface IChatRoom {
|
|
|
34
36
|
messages: Array<IChatMessage>;
|
|
35
37
|
send(user: IChatMessage["user"], message: string): void;
|
|
36
38
|
system(message: string): void;
|
|
39
|
+
command(team: 0 | 1, command: ECommand): void;
|
|
37
40
|
emit(): void;
|
|
38
41
|
}
|
|
42
|
+
export declare enum EChatSystem {
|
|
43
|
+
TEAM_0 = 0,
|
|
44
|
+
TEAM_1 = 1,
|
|
45
|
+
SYSTEM = "SYSTEM"
|
|
46
|
+
}
|
|
39
47
|
export declare enum EMatchTableState {
|
|
40
48
|
UNREADY = 0,
|
|
41
49
|
READY = 1,
|
|
@@ -93,6 +101,7 @@ export type IEnvidoCalculator = {
|
|
|
93
101
|
export declare enum EClientEvent {
|
|
94
102
|
PING = "PING",
|
|
95
103
|
SAY = "SAY",
|
|
104
|
+
LEAVE_MATCH = "LEAVE_MATCH",
|
|
96
105
|
CREATE_MATCH = "CREATE_MATCH",
|
|
97
106
|
LIST_MATCHES = "LIST_MATCHES",
|
|
98
107
|
JOIN_MATCH = "JOIN_MATCH",
|
|
@@ -116,6 +125,7 @@ export interface ServerToClientEvents {
|
|
|
116
125
|
export interface ClientToServerEvents {
|
|
117
126
|
[EClientEvent.PING]: (msg: string) => void;
|
|
118
127
|
[EClientEvent.CHAT]: (matchId: string, msg: string, callback: () => void) => void;
|
|
128
|
+
[EClientEvent.LEAVE_MATCH]: (matchId: string) => void;
|
|
119
129
|
[EClientEvent.CREATE_MATCH]: (callback: IEventCallback<{
|
|
120
130
|
match?: IPublicMatch;
|
|
121
131
|
}>) => void;
|
|
@@ -169,5 +179,4 @@ export interface TMap<K, V> extends Map<K, V> {
|
|
|
169
179
|
export declare class TMap<K, V> extends Map<K, V> {
|
|
170
180
|
findAll(finder: (value: V) => boolean): V[];
|
|
171
181
|
getOrThrow(key?: K): NonNullable<V>;
|
|
172
|
-
update(key: K, value: Partial<V>): void;
|
|
173
182
|
}
|
package/dist/types.js
CHANGED
|
@@ -1,6 +1,12 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.TMap = exports.ETrucoshiMatchState = exports.EServerEvent = exports.EClientEvent = exports.GAME_ERROR = exports.EHandState = exports.EEnvidoCommand = exports.ESayCommand = exports.EMatchTableState = void 0;
|
|
3
|
+
exports.TMap = exports.ETrucoshiMatchState = exports.EServerEvent = exports.EClientEvent = exports.GAME_ERROR = exports.EHandState = exports.EEnvidoCommand = exports.ESayCommand = exports.EMatchTableState = exports.EChatSystem = void 0;
|
|
4
|
+
var EChatSystem;
|
|
5
|
+
(function (EChatSystem) {
|
|
6
|
+
EChatSystem[EChatSystem["TEAM_0"] = 0] = "TEAM_0";
|
|
7
|
+
EChatSystem[EChatSystem["TEAM_1"] = 1] = "TEAM_1";
|
|
8
|
+
EChatSystem["SYSTEM"] = "SYSTEM";
|
|
9
|
+
})(EChatSystem = exports.EChatSystem || (exports.EChatSystem = {}));
|
|
4
10
|
var EMatchTableState;
|
|
5
11
|
(function (EMatchTableState) {
|
|
6
12
|
EMatchTableState[EMatchTableState["UNREADY"] = 0] = "UNREADY";
|
|
@@ -43,6 +49,7 @@ var EClientEvent;
|
|
|
43
49
|
(function (EClientEvent) {
|
|
44
50
|
EClientEvent["PING"] = "PING";
|
|
45
51
|
EClientEvent["SAY"] = "SAY";
|
|
52
|
+
EClientEvent["LEAVE_MATCH"] = "LEAVE_MATCH";
|
|
46
53
|
EClientEvent["CREATE_MATCH"] = "CREATE_MATCH";
|
|
47
54
|
EClientEvent["LIST_MATCHES"] = "LIST_MATCHES";
|
|
48
55
|
EClientEvent["JOIN_MATCH"] = "JOIN_MATCH";
|
|
@@ -95,12 +102,5 @@ class TMap extends Map {
|
|
|
95
102
|
}
|
|
96
103
|
return result;
|
|
97
104
|
}
|
|
98
|
-
update(key, value) {
|
|
99
|
-
const current = this.get(key);
|
|
100
|
-
if (!current) {
|
|
101
|
-
throw new Error(`update(${key}) not found`);
|
|
102
|
-
}
|
|
103
|
-
this.set(key, Object.assign(Object.assign({}, current), value));
|
|
104
|
-
}
|
|
105
105
|
}
|
|
106
106
|
exports.TMap = TMap;
|