[95ce58b] | 1 | import { tables } from "../postgre/index";
|
---|
| 2 |
|
---|
| 3 | import { v4 as uuidv4 } from "uuid";
|
---|
[189cd8f] | 4 |
|
---|
| 5 | export const singleDeck = ["SA", "S2", "S3", "S4", "S5", "S6", "S7", "S8", "S9", "SX", "SJ", "SQ", "SK",
|
---|
[95ce58b] | 6 | "HA", "H2", "H3", "H4", "H5", "H6", "H7", "H8", "H9", "HX", "HJ", "HQ", "HK",
|
---|
| 7 | "CA", "C2", "C3", "C4", "C5", "C6", "C7", "C8", "C9", "CX", "CJ", "CQ", "CK",
|
---|
| 8 | "DA", "D2", "D3", "D4", "D5", "D6", "D7", "D8", "D9", "DX", "DJ", "DQ", "DK" ];
|
---|
[189cd8f] | 9 |
|
---|
| 10 | export const deck = [...singleDeck];
|
---|
| 11 |
|
---|
| 12 | export const sampleTable = {
|
---|
| 13 | id: '',
|
---|
| 14 | name: '',
|
---|
| 15 | status: '_1_just_created',
|
---|
| 16 | creator: '',
|
---|
| 17 | started: false,
|
---|
| 18 | ended: false,
|
---|
| 19 | round: 0,
|
---|
| 20 | turnIdx: -1,
|
---|
[95ce58b] | 21 | lastActivity: 0,
|
---|
[189cd8f] | 22 | pot: 0,
|
---|
| 23 | lastBet: 20,
|
---|
| 24 | turnsSinceLastBet: 0,
|
---|
| 25 | deck: [...deck],
|
---|
| 26 | players: [],
|
---|
| 27 | winners: [],
|
---|
| 28 | splitWinners: false,
|
---|
| 29 | cards: [],
|
---|
| 30 | }
|
---|
| 31 |
|
---|
| 32 | export const samplePlayer = {
|
---|
| 33 | id: '',
|
---|
| 34 | table: '',
|
---|
| 35 | credits: 0,
|
---|
| 36 | status: '_1_just_entered',
|
---|
| 37 | displayName: '',
|
---|
| 38 | cards: [],
|
---|
| 39 | betAmount: 0,
|
---|
| 40 | wonAmount: 0,
|
---|
| 41 | isSatDown: false,
|
---|
| 42 | isCoordinator: false,
|
---|
| 43 | isFolded: false,
|
---|
| 44 | isGhost: false,
|
---|
| 45 | hand: {
|
---|
| 46 | hand: '',
|
---|
| 47 | highCard: 0,
|
---|
| 48 | },
|
---|
[95ce58b] | 49 | }
|
---|
| 50 |
|
---|
| 51 |
|
---|
| 52 | /**
|
---|
| 53 | * ********************* BEGIN OF FUNCTIONS *********************
|
---|
| 54 | */
|
---|
| 55 |
|
---|
[e007fcd] | 56 | export function createTable(playerId, playerName, tableName, username) {
|
---|
[95ce58b] | 57 | const tableId = uuidv4();
|
---|
| 58 |
|
---|
| 59 | const table = {
|
---|
| 60 | id: tableId,
|
---|
| 61 | name: tableName,
|
---|
| 62 | status: '_1_just_created',
|
---|
| 63 | creator: playerName,
|
---|
| 64 | started: false,
|
---|
| 65 | ended: false,
|
---|
| 66 | round: 0,
|
---|
| 67 | turnIdx: -1,
|
---|
| 68 | lastActivity: 0,
|
---|
| 69 | prevTurnIdx: -2,
|
---|
| 70 | pot: 0,
|
---|
| 71 | lastBet: 20,
|
---|
| 72 | turnsSinceLastBet: 0,
|
---|
| 73 | deck: [...deck],
|
---|
| 74 | players: [{
|
---|
| 75 | id: playerId,
|
---|
| 76 | table: tableId,
|
---|
[e007fcd] | 77 | username: username,
|
---|
[95ce58b] | 78 | credits: 0,
|
---|
| 79 | status: '_1_just_entered',
|
---|
| 80 | displayName: playerName,
|
---|
| 81 | cards: [],
|
---|
| 82 | betAmount: 0,
|
---|
| 83 | wonAmount: 0,
|
---|
| 84 | isSatDown: false,
|
---|
| 85 | isCoordinator: true,
|
---|
| 86 | isFolded: false,
|
---|
| 87 | isGhost: false,
|
---|
| 88 | hand: {
|
---|
| 89 | hand: '',
|
---|
| 90 | highCard: 0,
|
---|
| 91 | },
|
---|
| 92 | }],
|
---|
| 93 | onlyOnePlayerLeft: false,
|
---|
| 94 | winners: [],
|
---|
| 95 | splitWinners: false,
|
---|
| 96 | cards: [],
|
---|
| 97 | }
|
---|
| 98 |
|
---|
| 99 | tables.push(table)
|
---|
| 100 |
|
---|
| 101 | return table;
|
---|
| 102 | }
|
---|
| 103 |
|
---|
| 104 | export function getRestrictedTablesArray() {
|
---|
| 105 | let result = [];
|
---|
| 106 |
|
---|
| 107 | tables.forEach(table => {
|
---|
| 108 | let tmpPlayers = [];
|
---|
| 109 | table.players.forEach(player => {
|
---|
| 110 | tmpPlayers.push({
|
---|
| 111 | ...player,
|
---|
| 112 | id: '',
|
---|
| 113 | table: '',
|
---|
| 114 | cards: '',
|
---|
| 115 | })
|
---|
| 116 | });
|
---|
| 117 |
|
---|
| 118 | let tmpWinners = [];
|
---|
| 119 | table.winners.forEach(winner => {
|
---|
| 120 | tmpWinners.push({
|
---|
| 121 | ...winner,
|
---|
| 122 | id: '',
|
---|
| 123 | table: '',
|
---|
| 124 | cards: '',
|
---|
| 125 | })
|
---|
| 126 | });
|
---|
| 127 |
|
---|
| 128 | let tmp = {
|
---|
| 129 | ...table,
|
---|
| 130 | deck: [],
|
---|
| 131 | players: tmpPlayers,
|
---|
| 132 | winners: tmpWinners,
|
---|
| 133 | turnTimeout: null,
|
---|
| 134 | }
|
---|
| 135 |
|
---|
| 136 | result.push({...tmp});
|
---|
| 137 | })
|
---|
| 138 |
|
---|
| 139 | return result;
|
---|
| 140 | }
|
---|
| 141 |
|
---|
| 142 | export function getRestrictedTableArray(tableId, session_id) {
|
---|
| 143 | let result = undefined;
|
---|
| 144 |
|
---|
| 145 | let tableIdx = tables.map(e=>e.id).indexOf(tableId);
|
---|
| 146 |
|
---|
| 147 | if (tableIdx !== -1) {
|
---|
| 148 | let table = tables[tableIdx];
|
---|
| 149 |
|
---|
| 150 | let tmpPlayers = [];
|
---|
| 151 | table.players.forEach(player => {
|
---|
| 152 | if (player.id === session_id) {
|
---|
| 153 | tmpPlayers.push({
|
---|
| 154 | ...player,
|
---|
| 155 | id: '',
|
---|
| 156 | table: '',
|
---|
| 157 | })
|
---|
| 158 | }
|
---|
| 159 | else {
|
---|
| 160 | tmpPlayers.push({
|
---|
| 161 | ...player,
|
---|
| 162 | id: '',
|
---|
| 163 | table: '',
|
---|
| 164 | cards: table.ended ? player.cards : player.cards.length > 0 ? ['back', 'back'] : '',
|
---|
| 165 | })
|
---|
| 166 | }
|
---|
| 167 | });
|
---|
| 168 |
|
---|
| 169 | let tmpWinners = [];
|
---|
| 170 | table.winners.forEach(winner => {
|
---|
| 171 | if (winner.id === session_id) {
|
---|
| 172 | tmpWinners.push({
|
---|
| 173 | ...winner,
|
---|
| 174 | id: '',
|
---|
| 175 | table: '',
|
---|
| 176 | })
|
---|
| 177 | }
|
---|
| 178 | else {
|
---|
| 179 | tmpWinners.push({
|
---|
| 180 | ...winner,
|
---|
| 181 | id: '',
|
---|
| 182 | table: '',
|
---|
| 183 | cards: table.ended ? winner.cards : winner.cards.length > 0 ? ['back', 'back'] : '',
|
---|
| 184 | })
|
---|
| 185 | }
|
---|
| 186 | });
|
---|
| 187 | result = {
|
---|
| 188 | ...table,
|
---|
| 189 | players: tmpPlayers,
|
---|
| 190 | winners: tmpWinners,
|
---|
| 191 | turnTimeout: null,
|
---|
| 192 | }
|
---|
| 193 | }
|
---|
| 194 |
|
---|
| 195 | return result;
|
---|
| 196 | }
|
---|
| 197 |
|
---|
| 198 | export function getTable(tableId) {
|
---|
| 199 | const tableIdx = tables.map(e=>e.id).indexOf(tableId);
|
---|
| 200 |
|
---|
| 201 | if (tableIdx !== -1) {
|
---|
| 202 | return tables[tableIdx];
|
---|
| 203 | }
|
---|
| 204 |
|
---|
| 205 | return undefined;
|
---|
| 206 | }
|
---|
| 207 |
|
---|
| 208 | export function getTableAndPlayer(session_id) {
|
---|
| 209 | for (let tableIdx = 0; tableIdx < tables.length; tableIdx++) {
|
---|
| 210 | const playerIdx = tables[tableIdx].players.filter(e=>e.isGhost === false).map(e=>e.id).indexOf(session_id);
|
---|
| 211 |
|
---|
| 212 | if (playerIdx !== -1) {
|
---|
| 213 | return {
|
---|
| 214 | success: true,
|
---|
| 215 | table: tables[tableIdx],
|
---|
| 216 | player: tables[tableIdx].players[playerIdx],
|
---|
| 217 | }
|
---|
| 218 | }
|
---|
| 219 | }
|
---|
| 220 |
|
---|
| 221 | return {
|
---|
| 222 | success: false,
|
---|
| 223 | table: {...sampleTable},
|
---|
| 224 | player: {...samplePlayer},
|
---|
| 225 | };
|
---|
| 226 | }
|
---|
| 227 |
|
---|
| 228 | /**
|
---|
| 229 | * ********************* END OF FUNCTIONS *********************
|
---|
| 230 | */ |
---|