1
0

resetGame fixes for new games

Signed-off-by: James Ketrenos <james_eikona@ketrenos.com>
This commit is contained in:
James Ketrenos 2022-02-28 00:01:49 -08:00
parent eee064ed57
commit 89ad5ac1dd
4 changed files with 28 additions and 16 deletions

View File

@ -15,7 +15,7 @@ const Board = ({ table, game }) => {
const [transform, setTransform] = useState(1); const [transform, setTransform] = useState(1);
const const
hexRatio = 1.1547, hexRatio = 1.1547,
tileWidth = 67, tileWidth = 67,
tileHalfWidth = tileWidth * 0.5, tileHalfWidth = tileWidth * 0.5,

View File

@ -7,7 +7,6 @@
top: 0; top: 0;
justify-content: center; justify-content: center;
align-items: center; align-items: center;
background: rgba(0,0,0,0.5);
z-index: 1000; z-index: 1000;
} }

View File

@ -7,7 +7,6 @@
top: 0; top: 0;
justify-content: center; justify-content: center;
align-items: center; align-items: center;
background: rgba(0,0,0,0.5);
z-index: 1000; z-index: 1000;
} }

View File

@ -2687,6 +2687,7 @@ const resetGame = (game) => {
console.log(`Reseting ${game.id}`); console.log(`Reseting ${game.id}`);
Object.assign(game, { Object.assign(game, {
startTime: Date.now(),
state: 'lobby', state: 'lobby',
turn: 0, turn: 0,
sheep: 19, sheep: 19,
@ -2699,7 +2700,13 @@ const resetGame = (game) => {
roads: [] roads: []
}, },
developmentCards: [], developmentCards: [],
chat: [],
turn: {}, turn: {},
pipOrder: game.pipOrder,
borderOrder: game.borderOrder,
tileOrder: game.tileOrder,
signature: game.signature,
players: game.players
}); });
delete game.longestRoad; delete game.longestRoad;
@ -2707,7 +2714,12 @@ const resetGame = (game) => {
delete game.longestRoadLength; delete game.longestRoadLength;
delete game.winner; delete game.winner;
delete game.longestRoad; delete game.longestRoad;
/* Reset all player data */
for (let color in game.players) {
clearPlayer(game.players[color]);
}
/* Populate the game corner and road placement data as cleared */ /* Populate the game corner and road placement data as cleared */
for (let i = 0; i < layout.corners.length; i++) { for (let i = 0; i < layout.corners.length; i++) {
game.placements.corners[i] = { game.placements.corners[i] = {
@ -2745,11 +2757,6 @@ const resetGame = (game) => {
shuffle(game.developmentCards); shuffle(game.developmentCards);
/* Reset all player data */
for (let color in game.players) {
clearPlayer(game.players[color]);
}
/* Ensure sessions are connected to player objects */ /* Ensure sessions are connected to player objects */
for (let key in game.sessions) { for (let key in game.sessions) {
const session = game.sessions[key]; const session = game.sessions[key];
@ -2786,21 +2793,28 @@ const createGame = (id) => {
} }
const game = { const game = {
id: id id: id,
developmentCards: [],
players: {
O: newPlayer(),
R: newPlayer(),
B: newPlayer(),
W: newPlayer()
}
}; };
console.log(`New game created with Beginner's Layout: ${game.id}`);
addChatMessage(game, null,
`New game created with Beginner's Layout: ${game.id}`);
[ "pips", "borders", "tiles" ].forEach((field) => { [ "pips", "borders", "tiles" ].forEach((field) => {
game[field] = staticData[field] game[field] = staticData[field]
}); });
setBeginnerGame(game);
resetGame(game); resetGame(game);
console.log(`New game created with Beginner's Layout: ${game.id}`);
addChatMessage(game, null,
`New game created with Beginner's Layout: ${game.id}`);
games[game.id] = game; games[game.id] = game;
setBeginnerGame(game);
return game; return game;
}; };
@ -2845,7 +2859,7 @@ const setBeginnerGame = (game) => {
game.signature = gameSignature(game); game.signature = gameSignature(game);
} }
const shuffleBoard = (game, beginnersGame) => { const shuffleBoard = (game) => {
pickRobber(game); pickRobber(game);
const seq = []; const seq = [];