Skip to content

Commit c8c54c0

Browse files
committed
Migrate to @lefun 2.3.0-alpha.0
1 parent a72c7b4 commit c8c54c0

File tree

6 files changed

+438
-471
lines changed

6 files changed

+438
-471
lines changed

game/package.json

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,8 @@
2121
"lodash-es": "^4.17.21"
2222
},
2323
"devDependencies": {
24+
"@lefun/core": "2.3.0-alpha.0",
25+
"@lefun/game": "2.3.0-alpha.0",
2426
"@rollup/plugin-commonjs": "^21.0.1",
2527
"@rollup/plugin-node-resolve": "^13.0.6",
2628
"@typescript-eslint/eslint-plugin": "^7.11.0",
@@ -32,12 +34,10 @@
3234
"rollup-plugin-typescript2": "^0.31.1",
3335
"tslib": "^2.3.1",
3436
"typescript": "^5.4.5",
35-
"vitest": "^1.2.1",
36-
"@lefun/core": "2.0.0",
37-
"@lefun/game": "2.0.0"
37+
"vitest": "^2.0.5"
3838
},
3939
"peerDependencies": {
40-
"@lefun/core": "2.0.0",
41-
"@lefun/game": "2.0.0"
40+
"@lefun/core": "^2.3.0-alpha.0",
41+
"@lefun/game": "^2.3.0-alpha.0"
4242
}
4343
}

game/src/index.test.ts

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -138,7 +138,7 @@ test("palifico with 3 players, no palifico with 2 players", () => {
138138
expect(match.board.palifico).toEqual(false);
139139
});
140140

141-
// I was some bugs depending on the order so I'm testing all of them.
141+
// I saw some bugs depending on the order so I'm testing all of them.
142142
test.each([
143143
[[0, 1, 2]],
144144
[[0, 2, 1]],
@@ -512,8 +512,9 @@ test.each([[2], [3], [4]])("ranks for everyone %s", (numPlayers: number) => {
512512

513513
expect(match.matchHasEnded).toBe(true);
514514

515-
players.forEach((p, i) => {
516-
expect(match.meta.players.byId[p].rank).toEqual(players.length - i - 1);
517-
expect(match.meta.players.byId[p].score).toEqual(players.length - i - 1);
515+
players.forEach((userId, i) => {
516+
expect(match.playerStats[userId]).toEqual([
517+
{ key: "rank", value: players.length - i - 1 },
518+
]);
518519
});
519520
});

game/src/index.ts

Lines changed: 33 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import { GamePlayerSettings, GameSettings, UserId } from "@lefun/core";
2-
import { Game, GameState, PlayerMove } from "@lefun/game";
2+
import { Game, GameState, INIT_MOVE, PlayerMove } from "@lefun/game";
33

44
//
55
// Types
@@ -192,14 +192,13 @@ const bet: PlayerMove<DudoGameState, BetPayload> = {
192192
board.bet = [numDice, diceValue];
193193
incrementCurrentPlayer(board);
194194
},
195-
execute({ itsYourTurn, board }) {
196-
itsYourTurn({
197-
userIds: [board.playerOrder[board.currentPlayerIndex]],
198-
});
195+
execute({ turns, board }) {
196+
turns.end("all");
197+
turns.begin(board.playerOrder[board.currentPlayerIndex]);
199198
},
200199
};
201200

202-
const call: PlayerMove<DudoGameState> = {
201+
const call: PlayerMove<DudoGameState, null> = {
203202
canDo(options) {
204203
const { userId, board } = options;
205204

@@ -209,7 +208,7 @@ const call: PlayerMove<DudoGameState> = {
209208
board.step === "play"
210209
);
211210
},
212-
execute({ board, playerboards, itsYourTurn, endMatch }) {
211+
execute({ board, playerboards, turns, endMatch, logPlayerStat }) {
213212
const [betQty, betValue] = board.bet!;
214213

215214
const {
@@ -282,20 +281,25 @@ const call: PlayerMove<DudoGameState> = {
282281
});
283282

284283
// The turn is over, all the people alive must roll.
285-
itsYourTurn({ userIds: alivePlayers.map((p) => p.userId) });
284+
turns.end("all");
285+
turns.begin(alivePlayers.map((p) => p.userId));
286286

287287
if (winner != null) {
288288
const scores: Record<UserId, number> = {};
289289
scores[winner] = 0;
290290
board.deathList.forEach((userId, i) => {
291291
scores[userId] = board.deathList.length - i;
292292
});
293-
endMatch({ scores });
293+
294+
for (const [userId, score] of Object.entries(scores)) {
295+
logPlayerStat(userId, "rank", score);
296+
}
297+
endMatch();
294298
}
295299
},
296300
};
297301

298-
const roll: PlayerMove<DudoGameState> = {
302+
const roll: PlayerMove<DudoGameState, null> = {
299303
canDo(options) {
300304
const { board } = options;
301305
return board.step === "revealed";
@@ -304,7 +308,7 @@ const roll: PlayerMove<DudoGameState> = {
304308
playerboard.isRolling = true;
305309
board.players[userId].hasRolled = true;
306310
},
307-
execute({ board, playerboards, userId, random, itsYourTurn }) {
311+
execute({ board, playerboards, userId, random, turns }) {
308312
const { numDice } = playerboards[userId];
309313

310314
// Roll the dice for the player that is ready.
@@ -355,13 +359,10 @@ const roll: PlayerMove<DudoGameState> = {
355359
board.bet = undefined;
356360

357361
// `everyoneHasRolled` has changed the current player
358-
itsYourTurn({
359-
userIds: [board.playerOrder[board.currentPlayerIndex]],
360-
});
362+
turns.end("all");
363+
turns.begin(board.playerOrder[board.currentPlayerIndex]);
361364
} else {
362-
itsYourTurn({
363-
overUserIds: [userId],
364-
});
365+
turns.end(userId);
365366
}
366367
},
367368
};
@@ -429,17 +430,30 @@ export const game = {
429430
return {
430431
board,
431432
playerboards,
432-
itsYourTurnUsers: [playerOrder[0]],
433433
};
434434
},
435435
playerMoves: {
436436
bet,
437437
roll,
438438
call,
439439
},
440+
boardMoves: {
441+
[INIT_MOVE]: {
442+
execute: ({ turns, board }) => {
443+
turns.begin(board.playerOrder[0]);
444+
},
445+
},
446+
},
440447
gameSettings,
441448
gamePlayerSettings,
442-
playerScoreType: "rank",
449+
playerStats: [
450+
{
451+
key: "rank",
452+
type: "rank",
453+
determinesRank: true,
454+
ordering: "lowerIsBetter",
455+
},
456+
],
443457
minPlayers: 2,
444458
maxPlayers: 7,
445459
} satisfies Game<DudoGameState>;

package.json

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,6 @@
11
{
22
"name": "dudo",
33
"private": true,
4-
"pnpm": {
5-
"overrides": {
6-
"vite": "5.2.12"
7-
}
8-
},
94
"packageManager": "[email protected]+sha256.b6fd0bfda555e7e584ad7e56b30c68b01d5a04f9ee93989f4b93ca8473c49c74",
105
"devDependencies": {
116
"prettier": "^3.2.4"

0 commit comments

Comments
 (0)