Skip to content
This repository has been archived by the owner on Dec 9, 2024. It is now read-only.

Commit

Permalink
fix
Browse files Browse the repository at this point in the history
  • Loading branch information
sean351 committed Mar 26, 2024
1 parent a7aa40b commit 4a15005
Show file tree
Hide file tree
Showing 2 changed files with 32 additions and 56 deletions.
40 changes: 8 additions & 32 deletions commands/games-sp/blackjack.js
Original file line number Diff line number Diff line change
Expand Up @@ -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,
Expand All @@ -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({
Expand All @@ -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);

Expand Down Expand Up @@ -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
Expand Down Expand Up @@ -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`;
}
};
48 changes: 24 additions & 24 deletions commands/games-sp/roulette.js
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand All @@ -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}`);
Expand Down Expand Up @@ -241,4 +241,4 @@ module.exports = class RouletteCommand extends Command {

}

};
};

0 comments on commit 4a15005

Please sign in to comment.