From 4a15005ebf9978f8e9be7b2accbb2dbb3168079f Mon Sep 17 00:00:00 2001 From: Sean Doran Date: Mon, 25 Mar 2024 20:59:10 -0400 Subject: [PATCH] fix --- commands/games-sp/blackjack.js | 40 ++++++---------------------- commands/games-sp/roulette.js | 48 +++++++++++++++++----------------- 2 files changed, 32 insertions(+), 56 deletions(-) diff --git a/commands/games-sp/blackjack.js b/commands/games-sp/blackjack.js index 3e3732d..a2c4c55 100644 --- a/commands/games-sp/blackjack.js +++ b/commands/games-sp/blackjack.js @@ -71,7 +71,7 @@ module.exports = class BlackjackCommand extends Command { return msg.say('An error occurred during the game. Please try again later.'); } } - async handleInitialRound(msg, dealerTotal, playerTotal, id, playerId, finalBet) { + async handleInitialRound(msg, dealerTotal, playerTotal, id, playerId, betAmount) { if (dealerTotal === 21 && playerTotal === 21) { // PUSH await msg.client.dbHelper.createGameLog({ gameId: id, @@ -90,7 +90,7 @@ module.exports = class BlackjackCommand extends Command { event: 'DEALER_WIN', playerId: '1' }, 'blackjack'); - await msg.client.casinoUtils.calcWinUpdateBal(msg, 0, finalBet, false); + await msg.client.casinoUtils.calcWinUpdateBal(msg, 0, betAmount, false); return 'Ouch, the dealer hit blackjack right away! Try again!'; } else if (playerTotal === 21) { // Player BJ await msg.client.dbHelper.createGameLog({ @@ -103,12 +103,12 @@ module.exports = class BlackjackCommand extends Command { event: 'PLAYER_WIN', playerId: playerId, }, 'blackjack'); - await msg.client.casinoUtils.calcWinUpdateBal(msg, finalBet * 2, finalBet, true); + await msg.client.casinoUtils.calcWinUpdateBal(msg, betAmount * 2, betAmount, true); return 'Wow, you hit blackjack right away! Lucky you!'; } return null; } - async playPlayerTurn(msg, deck, playerHand, dealerHand, gameId, finalBet) { + async playPlayerTurn(msg, deck, playerHand, dealerHand, gameId, betAmount) { let isPlaying = true; let canSplit = this.checkSplitPossibility(playerHand); @@ -185,19 +185,19 @@ module.exports = class BlackjackCommand extends Command { if (winner === 'Dealer Wins!') { // Log dealer win event after confirming outcome await msg.client.dbHelper.createGameLog({ gameId, event: 'DEALER_WIN', playerId: msg.author.id }, 'blackjack'); - await msg.client.casinoUtils.calcWinUpdateBal(msg, false, finalBet, finalBet); + await msg.client.casinoUtils.calcWinUpdateBal(msg, false, betAmount, betAmount); return msg.reply(`You lost!, your new token balance is ${await msg.client.dbHelper.getBalance(msg.author.id)}`); } else if (winner === 'You Win!') { let winAmount; // Calculate win amount based on bet and blackjack payout (optional) if (this.calculate(playerHand) === 21 && playerHand.length === 2) { // Check for Blackjack - winAmount = finalBet * 2.5; // Hypothetical 3:2 payout for Blackjack + winAmount = betAmount * 2.5; // Hypothetical 3:2 payout for Blackjack } else { - winAmount = finalBet; // Hypothetical 1:1 payout for regular win + winAmount = betAmount; // Hypothetical 1:1 payout for regular win } // You can optionally add logic here to log a player win event await msg.client.dbHelper.createGameLog({ gameId, event: 'PLAYER_WIN', playerId: msg.author.id }, 'blackjack'); - await msg.client.casinoUtils.calcWinUpdateBal(msg, true, finalBet, winAmount); + await msg.client.casinoUtils.calcWinUpdateBal(msg, true, betAmount, winAmount); return msg.reply(`You won!, your new token balance is ${await msg.client.dbHelper.getBalance(msg.author.id)}`); } else if (winner === 'Push!') { // You can optionally add logic here to log a push event @@ -289,28 +289,4 @@ module.exports = class BlackjackCommand extends Command { }); return playerStr; } - convertToSuitAbbreviation(suit) { - const suitMap = { - "Hearts": "H", - "Diamonds": "D", - "Spades": "S", - "Clubs": "C" - }; - - return suitMap[suit] || suit; // Return original value if not a known suit - } - convertValueToAbbreviation(card) { - const faceCardMap = { - "Jack": "J", - "Queen": "Q", - "King": "K" - }; - - return faceCardMap[card] || card; // Return original value if not a face card - } - getCardImage(card) { - const suit = this.convertToSuitAbbreviation(card.suit); - const value = this.convertValueToAbbreviation(card.value); - return `../assets/images/deck/${suit}${value}.png`; - } }; diff --git a/commands/games-sp/roulette.js b/commands/games-sp/roulette.js index a24b395..18ed438 100644 --- a/commands/games-sp/roulette.js +++ b/commands/games-sp/roulette.js @@ -117,7 +117,7 @@ module.exports = class RouletteCommand extends Command { } } - calculateRouletteWinnings(msg, betType, finalBet, rouletteVariant) { + calculateRouletteWinnings(msg, betType, betAmount, rouletteVariant) { const payouts = this.getPayouts(rouletteVariant); // Function to retrieve payouts based on variant // Check if the bet type exists @@ -131,69 +131,69 @@ module.exports = class RouletteCommand extends Command { let winnings = 0; switch (betType) { case 'straightUp': - winnings = finalBet * payouts[betType] ** (winningNumber === finalBet); // Direct number match using exponentiation for boolean conversion + winnings = betAmount * payouts[betType] ** (winningNumber === betAmount); // Direct number match using exponentiation for boolean conversion msg.say(`The winning number is ${winningNumber}`); break; case 'split': - winnings = finalBet * payouts[betType] ** ([finalBet - 1, finalBet + 1].includes(winningNumber)); // Adjacent numbers, exponentiation for boolean conversion + winnings = betAmount * payouts[betType] ** ([betAmount - 1, betAmount + 1].includes(winningNumber)); // Adjacent numbers, exponentiation for boolean conversion msg.say(`The winning number is ${winningNumber}`); break; case 'street': - const streetStart = Math.floor((finalBet - 1) / 3) * 3 + 1; // Calculate street starting number - winnings = finalBet * payouts[betType] ** ([streetStart, streetStart + 1, streetStart + 2].includes(winningNumber)); // Numbers in the street, exponentiation for boolean conversion + const streetStart = Math.floor((betAmount - 1) / 3) * 3 + 1; // Calculate street starting number + winnings = betAmount * payouts[betType] ** ([streetStart, streetStart + 1, streetStart + 2].includes(winningNumber)); // Numbers in the street, exponentiation for boolean conversion msg.say(`The winning number is ${winningNumber}`); break; case 'corner': - const cornerRow = Math.floor((finalBet - 1) / 4); // Calculate corner row - const cornerCol = (finalBet - 1) % 4; // Calculate corner column + const cornerRow = Math.floor((betAmount - 1) / 4); // Calculate corner row + const cornerCol = (betAmount - 1) % 4; // Calculate corner column const cornerNumbers = [ cornerRow * 4 + cornerCol + 1, cornerRow * 4 + cornerCol + 2, (cornerRow + 1) * 4 + cornerCol + 1, (cornerRow + 1) * 4 + cornerCol + 2, ]; - winnings = finalBet * payouts[betType] ** (cornerNumbers.includes(winningNumber)); // Numbers in the corner, exponentiation for boolean conversion + winnings = betAmount * payouts[betType] ** (cornerNumbers.includes(winningNumber)); // Numbers in the corner, exponentiation for boolean conversion msg.say(`The winning number is ${winningNumber}`); break; case 'fiveNumberBet': // American Roulette only if (rouletteVariant !== 'american') { throw new Error('Five Number Bet is only available in American Roulette'); } - winnings = finalBet * payouts[betType] * ([0, 0o0, 1, 2, 3].includes(winningNumber)); - msg.say(`The winning number is ${winningNumber}`); + winnings = betAmount * payouts[betType] * ([0, 0o0, 1, 2, 3].includes(winningNumber)); + msg.say(`The winning number is ${winningNumber} fiveNumberBet`); break; case 'redBlack': const winningColor = winningNumber === 0 ? 'green' : (winningNumber % 2 === 0 ? 'black' : 'red'); - winnings = finalBet * payouts[betType] ** (winningColor === finalBet); // Color match, exponentiation for boolean conversion + winnings = betAmount * payouts[betType] ** (winningColor === betAmount); // Color match, exponentiation for boolean conversion msg.say(`The winning number is ${winningNumber} ${winningColor}`); break; case 'black': - winnings = finalBet * payouts[betType] ** (winningNumber === 0); // Zero match, exponentiation for boolean conversion - msg.say(`The winning number is ${winningNumber}`); + winnings = betAmount * payouts[betType] ** (winningNumber === 0); // Zero match, exponentiation for boolean conversion + msg.say(`The winning number is ${winningNumber} black`); break; case 'red': - winnings = finalBet * payouts[betType] ** (winningNumber !== 0 && winningNumber % 2 !== 0); // Red match, exponentiation for boolean conversion - msg.say(`The winning number is ${winningNumber}`); + winnings = betAmount * payouts[betType] ** (winningNumber !== 0 && winningNumber % 2 !== 0); // Red match, exponentiation for boolean conversion + msg.say(`The winning number is ${winningNumber} red`); break; case 'evenOdd': - winnings = finalBet * payouts[betType] ** ((winningNumber % 2 === 0 && finalBet === 'even') || (winningNumber % 2 !== 0 && finalBet === 'odd')); // Even/odd match, exponentiation for boolean conversion - msg.say(`The winning number is ${winningNumber}`); + winnings = betAmount * payouts[betType] ** ((winningNumber % 2 === 0 && betAmount === 'even') || (winningNumber % 2 !== 0 && betAmount === 'odd')); // Even/odd match, exponentiation for boolean conversion + msg.say(`The winning number is ${winningNumber} evenOdd`); break; case 'highLow': const highLowBoundary = 18; - winnings = finalBet * payouts[betType] ** ((winningNumber >= highLowBoundary && finalBet === 'high') || (winningNumber < highLowBoundary && finalBet === 'low')); // High/low match, exponentiation for boolean conversion - msg.say(`The winning number is ${winningNumber}`); + winnings = betAmount * payouts[betType] ** ((winningNumber >= highLowBoundary && betAmount === 'high') || (winningNumber < highLowBoundary && betAmount === 'low')); // High/low match, exponentiation for boolean conversion + msg.say(`The winning number is ${winningNumber} highLow`); break; case 'dozens': const dozen = Math.ceil(winningNumber / 12); - winnings = finalBet * payouts[betType] ** (dozen === finalBet); // Dozen match, exponentiation for boolean conversion - msg.say(`The winning number is ${winningNumber}`); + winnings = betAmount * payouts[betType] ** (dozen === betAmount); // Dozen match, exponentiation for boolean conversion + msg.say(`The winning number is ${winningNumber} dozens`); break; case 'columns': const column = Math.ceil(betAmount / 3); const columnNumbers = [column, column + 3, column + 6]; - winnings = finalBet * payouts[betType] ** (columnNumbers.includes(winningNumber)); // Column match, exponentiation for boolean conversion - msg.say(`The winning number is ${winningNumber}`); + winnings = betAmount * payouts[betType] ** (columnNumbers.includes(winningNumber)); // Column match, exponentiation for boolean conversion + msg.say(`The winning number is ${winningNumber} columns`); break; default: throw new Error(`Unhandled bet type: ${betType}`); @@ -241,4 +241,4 @@ module.exports = class RouletteCommand extends Command { } -}; \ No newline at end of file +};