trucoshi 0.1.1 → 0.1.2

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.
Files changed (50) hide show
  1. package/package.json +3 -6
  2. package/dist/index.d.ts +0 -2
  3. package/dist/lib/classes/Deck.d.ts +0 -16
  4. package/dist/lib/classes/Deck.js +0 -38
  5. package/dist/lib/classes/GameLoop.d.ts +0 -20
  6. package/dist/lib/classes/GameLoop.js +0 -103
  7. package/dist/lib/classes/Hand.d.ts +0 -38
  8. package/dist/lib/classes/Hand.js +0 -233
  9. package/dist/lib/classes/Lobby.d.ts +0 -27
  10. package/dist/lib/classes/Lobby.js +0 -114
  11. package/dist/lib/classes/Match.d.ts +0 -18
  12. package/dist/lib/classes/Match.js +0 -115
  13. package/dist/lib/classes/Play.d.ts +0 -21
  14. package/dist/lib/classes/Play.js +0 -39
  15. package/dist/lib/classes/Player.d.ts +0 -24
  16. package/dist/lib/classes/Player.js +0 -71
  17. package/dist/lib/classes/Round.d.ts +0 -17
  18. package/dist/lib/classes/Round.js +0 -34
  19. package/dist/lib/classes/Table.d.ts +0 -12
  20. package/dist/lib/classes/Table.js +0 -30
  21. package/dist/lib/classes/Team.d.ts +0 -17
  22. package/dist/lib/classes/Team.js +0 -58
  23. package/dist/lib/classes/Truco.d.ts +0 -18
  24. package/dist/lib/classes/Truco.js +0 -110
  25. package/dist/lib/classes/index.d.ts +0 -11
  26. package/dist/lib/classes/index.js +0 -27
  27. package/dist/lib/constants.d.ts +0 -45
  28. package/dist/lib/constants.js +0 -85
  29. package/dist/lib/index.d.ts +0 -2
  30. package/dist/lib/index.js +0 -18
  31. package/dist/lib/types.d.ts +0 -50
  32. package/dist/lib/types.js +0 -34
  33. package/dist/lib/utils.d.ts +0 -5
  34. package/dist/lib/utils.js +0 -59
  35. package/dist/server/classes/MatchTable.d.ts +0 -32
  36. package/dist/server/classes/MatchTable.js +0 -77
  37. package/dist/server/classes/User.d.ts +0 -5
  38. package/dist/server/classes/User.js +0 -11
  39. package/dist/server/classes/index.d.ts +0 -0
  40. package/dist/server/classes/index.js +0 -1
  41. package/dist/server/index.d.ts +0 -1
  42. package/dist/server/index.js +0 -379
  43. package/dist/server/types.d.ts +0 -36
  44. package/dist/server/types.js +0 -26
  45. package/dist/test/autoplay.d.ts +0 -1
  46. package/dist/test/autoplay.js +0 -94
  47. package/dist/test/play.d.ts +0 -1
  48. package/dist/test/play.js +0 -214
  49. package/dist/types.d.ts +0 -83
  50. package/dist/types.js +0 -57
@@ -1,379 +0,0 @@
1
- "use strict";
2
- var __assign = (this && this.__assign) || function () {
3
- __assign = Object.assign || function(t) {
4
- for (var s, i = 1, n = arguments.length; i < n; i++) {
5
- s = arguments[i];
6
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
7
- t[p] = s[p];
8
- }
9
- return t;
10
- };
11
- return __assign.apply(this, arguments);
12
- };
13
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
14
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
15
- return new (P || (P = Promise))(function (resolve, reject) {
16
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
17
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
18
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
19
- step((generator = generator.apply(thisArg, _arguments || [])).next());
20
- });
21
- };
22
- var __generator = (this && this.__generator) || function (thisArg, body) {
23
- var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
24
- return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
25
- function verb(n) { return function (v) { return step([n, v]); }; }
26
- function step(op) {
27
- if (f) throw new TypeError("Generator is already executing.");
28
- while (g && (g = 0, op[0] && (_ = 0)), _) try {
29
- if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
30
- if (y = 0, t) op = [op[0] & 2, t.value];
31
- switch (op[0]) {
32
- case 0: case 1: t = op; break;
33
- case 4: _.label++; return { value: op[1], done: false };
34
- case 5: _.label++; y = op[1]; op = [0]; continue;
35
- case 7: op = _.ops.pop(); _.trys.pop(); continue;
36
- default:
37
- if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
38
- if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
39
- if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
40
- if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
41
- if (t[2]) _.ops.pop();
42
- _.trys.pop(); continue;
43
- }
44
- op = body.call(thisArg, _);
45
- } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
46
- if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
47
- }
48
- };
49
- Object.defineProperty(exports, "__esModule", { value: true });
50
- var crypto_1 = require("crypto");
51
- var http_1 = require("http");
52
- var socket_io_1 = require("socket.io");
53
- var MatchTable_1 = require("./classes/MatchTable");
54
- var User_1 = require("./classes/User");
55
- var types_1 = require("../types");
56
- var PORT = process.env.NODE_PORT || 4001;
57
- var ORIGIN = process.env.NODE_ORIGIN || "http://localhost:3000";
58
- var httpServer = (0, http_1.createServer)();
59
- var io = new socket_io_1.Server(httpServer, {
60
- cors: {
61
- origin: ORIGIN,
62
- methods: ["GET", "POST"],
63
- },
64
- });
65
- var users = new Map(); // sessionId, user
66
- var tables = new Map(); // sessionId, table
67
- var turns = new Map(); // sessionId, play instance
68
- var getUser = function (session) {
69
- var user = users.get(session);
70
- if (user) {
71
- return user;
72
- }
73
- throw new Error("User not found");
74
- };
75
- var getTable = function (matchSessionId) {
76
- var table = tables.get(matchSessionId);
77
- if (table) {
78
- return table;
79
- }
80
- throw new Error("Match Session not found");
81
- };
82
- io.on("connection", function (_socket) {
83
- var socket = _socket;
84
- console.log("New socket", socket.id);
85
- socket.on("disconnect", function (_reason) {
86
- try {
87
- var user = getUser(socket.session);
88
- user.matchSocketIds.forEach(function (sockets) { return sockets.delete(socket.id); });
89
- }
90
- catch (e) {
91
- console.error(e);
92
- }
93
- });
94
- var getTableSockets = function (table, callback) {
95
- return new Promise(function (resolve) { return __awaiter(void 0, void 0, void 0, function () {
96
- var sockets, _i, sockets_1, playerSocket;
97
- return __generator(this, function (_a) {
98
- switch (_a.label) {
99
- case 0: return [4 /*yield*/, io.sockets.adapter.fetchSockets({
100
- rooms: new Set([table.matchSessionId]),
101
- })];
102
- case 1:
103
- sockets = _a.sent();
104
- _i = 0, sockets_1 = sockets;
105
- _a.label = 2;
106
- case 2:
107
- if (!(_i < sockets_1.length)) return [3 /*break*/, 5];
108
- playerSocket = sockets_1[_i];
109
- return [4 /*yield*/, callback(playerSocket)];
110
- case 3:
111
- _a.sent();
112
- _a.label = 4;
113
- case 4:
114
- _i++;
115
- return [3 /*break*/, 2];
116
- case 5:
117
- resolve();
118
- return [2 /*return*/];
119
- }
120
- });
121
- }); });
122
- };
123
- var emitMatchUpdate = function (table) { return __awaiter(void 0, void 0, void 0, function () {
124
- return __generator(this, function (_a) {
125
- switch (_a.label) {
126
- case 0: return [4 /*yield*/, getTableSockets(table, function (playerSocket) { return __awaiter(void 0, void 0, void 0, function () {
127
- return __generator(this, function (_a) {
128
- playerSocket.emit(types_1.EServerEvent.UPDATE_MATCH, table.getPublicMatch(playerSocket.session));
129
- return [2 /*return*/];
130
- });
131
- }); })];
132
- case 1:
133
- _a.sent();
134
- return [2 /*return*/];
135
- }
136
- });
137
- }); };
138
- socket.on(types_1.EClientEvent.PING, function (msg) {
139
- socket.emit(types_1.EServerEvent.PONG, msg);
140
- });
141
- /**
142
- * Create Match
143
- */
144
- socket.on(types_1.EClientEvent.CREATE_MATCH, function (callback) {
145
- if (socket.session) {
146
- try {
147
- var user = getUser(socket.session);
148
- var existingTable = tables.get(socket.session);
149
- if (existingTable) {
150
- return callback({
151
- success: false,
152
- match: existingTable.getPublicMatch(socket.session),
153
- });
154
- }
155
- var table = (0, MatchTable_1.MatchTable)(socket.session);
156
- table.lobby.addPlayer(user.id, socket.session, 0);
157
- socket.join(socket.session);
158
- addSocketToUser(socket.session, socket.id, table);
159
- tables.set(socket.session, table);
160
- return callback({ success: true, match: table.getPublicMatch(user.id) });
161
- }
162
- catch (e) {
163
- console.error("ERROR", e);
164
- return callback({ success: false, error: e });
165
- }
166
- }
167
- callback({ success: false, error: new Error("Can't create match without an ID") });
168
- });
169
- var sendWaitingForPlay = function (table, play) { return __awaiter(void 0, void 0, void 0, function () {
170
- return __generator(this, function (_a) {
171
- return [2 /*return*/, new Promise(function (resolve, reject) {
172
- return getTableSockets(table, function (playerSocket) { return __awaiter(void 0, void 0, void 0, function () {
173
- var _a;
174
- return __generator(this, function (_b) {
175
- if (playerSocket.session && playerSocket.session === ((_a = play.player) === null || _a === void 0 ? void 0 : _a.session)) {
176
- playerSocket.emit(types_1.EServerEvent.WAITING_PLAY, table.getPublicMatch(playerSocket.session), function (data) {
177
- if (!data) {
178
- return reject(new Error("Callback returned empty"));
179
- }
180
- var cardIdx = data.cardIdx, card = data.card, command = data.command;
181
- if (cardIdx !== undefined && card) {
182
- var playedCard = play.use(cardIdx, card);
183
- if (playedCard) {
184
- return resolve();
185
- }
186
- return reject(new Error("Invalid Card"));
187
- }
188
- if (command) {
189
- var saidCommand = play.say(command);
190
- if (saidCommand) {
191
- return resolve();
192
- }
193
- return reject(new Error("Invalid Command"));
194
- }
195
- return reject(new Error("Invalid Callback response"));
196
- });
197
- }
198
- return [2 /*return*/];
199
- });
200
- }); });
201
- })];
202
- });
203
- }); };
204
- var startMatch = function (tableId) { return __awaiter(void 0, void 0, void 0, function () {
205
- var table_1;
206
- return __generator(this, function (_a) {
207
- try {
208
- table_1 = getTable(tableId);
209
- if (table_1 && !table_1.lobby.gameLoop) {
210
- table_1.lobby
211
- .startMatch()
212
- .onTurn(function (play) {
213
- return new Promise(function (resolve) { return __awaiter(void 0, void 0, void 0, function () {
214
- var session, user, e_1;
215
- var _a;
216
- return __generator(this, function (_b) {
217
- switch (_b.label) {
218
- case 0:
219
- table_1.setCurrentPlayer(play.player);
220
- turns.set(table_1.matchSessionId, { play: play, resolve: resolve });
221
- _b.label = 1;
222
- case 1:
223
- _b.trys.push([1, 4, , 5]);
224
- session = (_a = play.player) === null || _a === void 0 ? void 0 : _a.session;
225
- if (!session || !play) {
226
- throw new Error("Unexpected Error");
227
- }
228
- user = users.get(session);
229
- if (!user) {
230
- throw new Error("Unexpected Error");
231
- }
232
- return [4 /*yield*/, emitMatchUpdate(table_1)];
233
- case 2:
234
- _b.sent();
235
- return [4 /*yield*/, sendWaitingForPlay(table_1, play)];
236
- case 3:
237
- _b.sent();
238
- return [2 /*return*/, resolve()];
239
- case 4:
240
- e_1 = _b.sent();
241
- console.error("ERROR", e_1);
242
- return [3 /*break*/, 5];
243
- case 5: return [2 /*return*/];
244
- }
245
- });
246
- }); });
247
- })
248
- .onTruco(function (play) { return __awaiter(void 0, void 0, void 0, function () { return __generator(this, function (_a) {
249
- return [2 /*return*/];
250
- }); }); })
251
- .onWinner(function () { return __awaiter(void 0, void 0, void 0, function () { return __generator(this, function (_a) {
252
- return [2 /*return*/];
253
- }); }); })
254
- .begin();
255
- return [2 /*return*/, tables.set(socket.session, table_1)];
256
- }
257
- return [2 /*return*/, null];
258
- }
259
- catch (e) {
260
- return [2 /*return*/, null];
261
- }
262
- return [2 /*return*/];
263
- });
264
- }); };
265
- /**
266
- * Start Match
267
- */
268
- socket.on(types_1.EClientEvent.START_MATCH, function () {
269
- if (socket.session && users.has(socket.session)) {
270
- startMatch(socket.session);
271
- }
272
- });
273
- var addSocketToUser = function (session, socketId, table) {
274
- var _a;
275
- var user = getUser(session);
276
- var socketIds = (_a = user.matchSocketIds) === null || _a === void 0 ? void 0 : _a.get(table.matchSessionId);
277
- if (socketIds && socketIds.has(socketId)) {
278
- return;
279
- }
280
- console.log("User got new match socket", { socketId: socketId, session: session, matchId: table.matchSessionId });
281
- var currentMatchSockets = user.matchSocketIds.has(table.matchSessionId)
282
- ? user.matchSocketIds.get(table.matchSessionId)
283
- : new Set();
284
- users.set(session, __assign(__assign({}, user), { matchSocketIds: user.matchSocketIds.set(table.matchSessionId, currentMatchSockets.add(socketId)) }));
285
- };
286
- /**
287
- * Join Match
288
- */
289
- socket.on(types_1.EClientEvent.JOIN_MATCH, function (matchSessionId, teamIdx, callback) {
290
- if (!socket.session) {
291
- return callback({ success: false });
292
- }
293
- var user = getUser(socket.session);
294
- var table = tables.get(matchSessionId);
295
- if (table) {
296
- try {
297
- table.lobby.addPlayer(user.id || "satoshi", socket.session, teamIdx);
298
- }
299
- catch (e) {
300
- console.error(e);
301
- return callback({ success: false });
302
- }
303
- socket.join(matchSessionId);
304
- addSocketToUser(socket.session, socket.id, table);
305
- emitMatchUpdate(table);
306
- return callback({ success: true, match: table.getPublicMatch(socket.session) });
307
- }
308
- callback({ success: false });
309
- });
310
- /**
311
- * Get Match
312
- */
313
- socket.on(types_1.EClientEvent.GET_MATCH, function (matchSessionId, callback) {
314
- var table = tables.get(matchSessionId);
315
- if (table) {
316
- return callback({ success: true, match: table.getPublicMatch(socket.session) });
317
- }
318
- callback({ success: false });
319
- });
320
- /**
321
- * Set Session
322
- */
323
- socket.on(types_1.EClientEvent.SET_SESSION, function (session, id, currentMatchId, callback) {
324
- var _a;
325
- if (id === void 0) { id = "satoshi"; }
326
- if (currentMatchId === void 0) { currentMatchId = null; }
327
- if (callback === void 0) { callback = function () { }; }
328
- var user = users.get(session);
329
- if (user) {
330
- var updatedUser = __assign(__assign({}, user), { id: id });
331
- users.set(session, updatedUser);
332
- socket.session = session;
333
- var currentTable = currentMatchId ? tables.get(currentMatchId) : null;
334
- if (currentTable) {
335
- addSocketToUser(session, socket.id, currentTable);
336
- socket.join(currentTable.matchSessionId);
337
- if (currentTable.isSessionPlaying(session) &&
338
- session === ((_a = currentTable.currentPlayer) === null || _a === void 0 ? void 0 : _a.session)) {
339
- try {
340
- var _b = turns.get(currentTable.matchSessionId) || {}, play = _b.play, resolve = _b.resolve;
341
- if (!play) {
342
- throw new Error("Unexpected Error");
343
- }
344
- sendWaitingForPlay(currentTable, play).then(resolve).catch(console.error);
345
- }
346
- catch (e) {
347
- console.error("ERROR", e);
348
- }
349
- }
350
- else {
351
- socket.emit(types_1.EServerEvent.UPDATE_MATCH, currentTable.getPublicMatch(session));
352
- }
353
- }
354
- return callback({ success: true, session: session });
355
- }
356
- var newSession = (0, crypto_1.randomUUID)();
357
- socket.session = newSession;
358
- users.set(newSession, (0, User_1.User)(id));
359
- callback({ success: true, session: newSession });
360
- });
361
- /**
362
- * Set Player Ready
363
- */
364
- socket.on(types_1.EClientEvent.SET_PLAYER_READY, function (matchSessionId, ready) {
365
- try {
366
- var table = getTable(matchSessionId);
367
- var player = table.lobby.players.find(function (player) { return player && player.session === socket.session; });
368
- if (player) {
369
- player.setReady(ready);
370
- emitMatchUpdate(table);
371
- }
372
- }
373
- catch (e) {
374
- console.error("ERROR", e);
375
- }
376
- });
377
- });
378
- httpServer.listen(PORT);
379
- console.log("Listening on", ORIGIN, PORT);
@@ -1,36 +0,0 @@
1
- import { Socket } from "socket.io";
2
- import { ICard } from "../lib";
3
- import { ECommand } from "../lib/types";
4
- export declare enum EClientEvent {
5
- PING = "PING",
6
- PLAY = "PLAY",
7
- CREATE_MATCH = "CREATE_MATCH",
8
- GET_MATCH = "GET_MATCH",
9
- JOIN_MATCH = "JOIN_MATCH",
10
- START_MATCH = "START_MATCH",
11
- SET_PLAYER_READY = "SET_PLAYER_READY",
12
- SET_SESSION = "SET_SESSION"
13
- }
14
- export declare enum EServerEvent {
15
- PONG = "PONG",
16
- UPDATE_MATCH = "UPDATE_MATCH",
17
- WAITING_PLAY = "WAITING_PLAY"
18
- }
19
- export interface TrucoshiSocket extends Socket {
20
- session?: string;
21
- }
22
- export declare enum ETrucoshiMatchState {
23
- UNREADY = 0,
24
- STARTED = 1,
25
- FINISHED = 2
26
- }
27
- export type IWaitingPlayData = {
28
- cardIdx: number;
29
- card: ICard;
30
- command?: undefined;
31
- } | {
32
- cardIdx?: undefined;
33
- card?: undefined;
34
- command: ECommand;
35
- };
36
- export type IWaitingPlayCallback = (data: IWaitingPlayData) => void | null;
@@ -1,26 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.ETrucoshiMatchState = exports.EServerEvent = exports.EClientEvent = void 0;
4
- var EClientEvent;
5
- (function (EClientEvent) {
6
- EClientEvent["PING"] = "PING";
7
- EClientEvent["PLAY"] = "PLAY";
8
- EClientEvent["CREATE_MATCH"] = "CREATE_MATCH";
9
- EClientEvent["GET_MATCH"] = "GET_MATCH";
10
- EClientEvent["JOIN_MATCH"] = "JOIN_MATCH";
11
- EClientEvent["START_MATCH"] = "START_MATCH";
12
- EClientEvent["SET_PLAYER_READY"] = "SET_PLAYER_READY";
13
- EClientEvent["SET_SESSION"] = "SET_SESSION";
14
- })(EClientEvent = exports.EClientEvent || (exports.EClientEvent = {}));
15
- var EServerEvent;
16
- (function (EServerEvent) {
17
- EServerEvent["PONG"] = "PONG";
18
- EServerEvent["UPDATE_MATCH"] = "UPDATE_MATCH";
19
- EServerEvent["WAITING_PLAY"] = "WAITING_PLAY";
20
- })(EServerEvent = exports.EServerEvent || (exports.EServerEvent = {}));
21
- var ETrucoshiMatchState;
22
- (function (ETrucoshiMatchState) {
23
- ETrucoshiMatchState[ETrucoshiMatchState["UNREADY"] = 0] = "UNREADY";
24
- ETrucoshiMatchState[ETrucoshiMatchState["STARTED"] = 1] = "STARTED";
25
- ETrucoshiMatchState[ETrucoshiMatchState["FINISHED"] = 2] = "FINISHED";
26
- })(ETrucoshiMatchState = exports.ETrucoshiMatchState || (exports.ETrucoshiMatchState = {}));
@@ -1 +0,0 @@
1
- export {};
@@ -1,94 +0,0 @@
1
- "use strict";
2
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
- return new (P || (P = Promise))(function (resolve, reject) {
5
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
- step((generator = generator.apply(thisArg, _arguments || [])).next());
9
- });
10
- };
11
- var __generator = (this && this.__generator) || function (thisArg, body) {
12
- var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
13
- return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
14
- function verb(n) { return function (v) { return step([n, v]); }; }
15
- function step(op) {
16
- if (f) throw new TypeError("Generator is already executing.");
17
- while (g && (g = 0, op[0] && (_ = 0)), _) try {
18
- if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
19
- if (y = 0, t) op = [op[0] & 2, t.value];
20
- switch (op[0]) {
21
- case 0: case 1: t = op; break;
22
- case 4: _.label++; return { value: op[1], done: false };
23
- case 5: _.label++; y = op[1]; op = [0]; continue;
24
- case 7: op = _.ops.pop(); _.trys.pop(); continue;
25
- default:
26
- if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
27
- if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
28
- if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
29
- if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
30
- if (t[2]) _.ops.pop();
31
- _.trys.pop(); continue;
32
- }
33
- op = body.call(thisArg, _);
34
- } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
35
- if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
36
- }
37
- };
38
- Object.defineProperty(exports, "__esModule", { value: true });
39
- var lib_1 = require("../lib");
40
- (function () { return __awaiter(void 0, void 0, void 0, function () {
41
- var trucoshi;
42
- return __generator(this, function (_a) {
43
- trucoshi = (0, lib_1.Lobby)();
44
- trucoshi.addPlayer("lukini", "lukini").setReady(true);
45
- trucoshi.addPlayer("denoph", "denoph").setReady(true);
46
- trucoshi.addPlayer("guada", "guada").setReady(true);
47
- trucoshi.addPlayer("juli", "juli").setReady(true);
48
- trucoshi.addPlayer("day", "day").setReady(true);
49
- trucoshi.addPlayer("fran", "fran").setReady(true);
50
- trucoshi
51
- .startMatch()
52
- .onTurn(function (play) { return __awaiter(void 0, void 0, void 0, function () {
53
- var name, randomIdx, handString, card;
54
- var _a;
55
- return __generator(this, function (_b) {
56
- if (!play.player) {
57
- return [2 /*return*/];
58
- }
59
- name = (_a = play.player) === null || _a === void 0 ? void 0 : _a.id.toUpperCase();
60
- console.log("=== Mano ".concat(play.handIdx, " === Ronda ").concat(play.roundIdx, " === Turno de ").concat(name, " ==="));
61
- play.teams.map(function (team, id) {
62
- return console.log("=== Team ".concat(id, " = ").concat(team.points.malas, " malas ").concat(team.points.buenas, " buenas ==="));
63
- });
64
- console.log(play.rounds && play.rounds.length
65
- ? play.rounds.map(function (round) {
66
- return round.cards.length ? round.cards.map(function (c) { return [c.player.id, c.card]; }) : "";
67
- })
68
- : "");
69
- randomIdx = Math.round(Math.random() * (play.player.hand.length - 1));
70
- handString = JSON.stringify(play.player.hand);
71
- card = play.use(randomIdx, play.player.hand[randomIdx]);
72
- console.log("\n".concat(handString, "\nUsing ").concat(card));
73
- console.log(play.rounds && play.rounds.length
74
- ? play.rounds.map(function (round) {
75
- return round.cards.length ? round.cards.map(function (c) { return [c.player.id, c.card]; }) : "";
76
- })
77
- : "");
78
- return [2 /*return*/];
79
- });
80
- }); })
81
- .onWinner(function (winner, teams) { return __awaiter(void 0, void 0, void 0, function () {
82
- return __generator(this, function (_a) {
83
- console.log("\n");
84
- teams.map(function (t, i) {
85
- return console.log("Equipo ".concat(i, ": ").concat(t.players.map(function (p) { return " ".concat(p.id); }), " === ").concat(t.points.malas, " malas ").concat(t.points.buenas, " buenas"));
86
- });
87
- console.log("\nEquipo Ganador:".concat(winner.players.map(function (p) { return " ".concat(p.id); })));
88
- return [2 /*return*/];
89
- });
90
- }); })
91
- .begin();
92
- return [2 /*return*/];
93
- });
94
- }); })();
@@ -1 +0,0 @@
1
- export {};