617 lines
28 KiB
Python
617 lines
28 KiB
Python
import random
|
|
import json
|
|
import math
|
|
|
|
from shutil import copyfile
|
|
|
|
from funcs import logThis, replaceMultiple
|
|
from . import money, blackjackDraw
|
|
|
|
# Shuffles the blackjack cards
|
|
def blackjackShuffle(decks):
|
|
logThis("Shuffling the blackjack deck")
|
|
|
|
with open("resources/games/deckofCards.txt","r") as f:
|
|
deck = f.read()
|
|
|
|
allDecks = deck.split("\n") * decks
|
|
random.shuffle(allDecks)
|
|
data = "\n".join(allDecks)
|
|
|
|
with open("resources/games/blackjackCards.txt","w") as f:
|
|
f.write(data)
|
|
|
|
# Creates hilo.txt
|
|
logThis("creating hilo.txt.")
|
|
data = "0"
|
|
with open("resources/games/hilo.txt","w") as f:
|
|
f.write(data)
|
|
|
|
return
|
|
|
|
# Calculates the value of a blackjack hand
|
|
def calcHandValue(hand : list):
|
|
logThis("Calculating hand value")
|
|
values = [0]
|
|
|
|
for card in hand:
|
|
cardValue = card[0]
|
|
cardValue = replaceMultiple(cardValue,["0","k","q","j"],"10")
|
|
if cardValue == "a":
|
|
length = len(values)
|
|
for x in range(length):
|
|
values.append(values[x] + 11)
|
|
values[x] += 1
|
|
else:
|
|
for x in range(len(values)):
|
|
values[x] += int(cardValue)
|
|
|
|
values.sort()
|
|
|
|
handValue = values[0]
|
|
for value in values:
|
|
if value <= 21:
|
|
handValue = value
|
|
|
|
logThis("Calculated "+str(hand)+" to be "+str(handValue))
|
|
|
|
return handValue
|
|
|
|
# Draws a card from the deck
|
|
def drawCard():
|
|
logThis("drawing a card")
|
|
with open("resources/games/blackjackCards.txt","r") as f:
|
|
cards = f.read().split("\n")
|
|
with open("resources/games/hilo.txt", "r") as f:
|
|
data = int(f.read())
|
|
|
|
drawnCard = cards.pop(0)
|
|
deck = "\n".join(cards)
|
|
|
|
value = calcHandValue([drawnCard])
|
|
|
|
if value <= 6:
|
|
data += 1
|
|
elif value >= 10:
|
|
data -= 1
|
|
|
|
with open("resources/games/blackjackCards.txt","w") as f:
|
|
f.write(deck)
|
|
with open("resources/games/hilo.txt", "w") as f:
|
|
f.write(str(data))
|
|
|
|
return drawnCard
|
|
|
|
# Dealer draws a card and checks if they should draw another one
|
|
def dealerDraw(channel):
|
|
with open("resources/games/games.json", "r") as f:
|
|
data = json.load(f)
|
|
|
|
done = False
|
|
dealerHand = data["blackjack games"][channel]["dealer hand"]
|
|
|
|
if calcHandValue(dealerHand) < 17:
|
|
data["blackjack games"][channel]["dealer hand"].append(drawCard())
|
|
else:
|
|
done = True
|
|
|
|
if calcHandValue(dealerHand) > 21:
|
|
data["blackjack games"][channel]["dealer busted"] = True
|
|
|
|
with open("resources/games/games.json", "w") as f:
|
|
json.dump(data,f,indent=4)
|
|
|
|
return done
|
|
|
|
# Goes to the next round and calculates some stuff
|
|
def blackjackContinue(channel):
|
|
logThis("Continuing blackjack game")
|
|
with open("resources/games/games.json", "r") as f:
|
|
data = json.load(f)
|
|
|
|
done = False
|
|
|
|
data["blackjack games"][channel]["round"] += 1
|
|
|
|
with open("resources/games/games.json", "w") as f:
|
|
json.dump(data,f,indent=4)
|
|
|
|
allStanding = True
|
|
preAllStanding = True
|
|
message = "All players are standing. The dealer now shows his cards and draws."
|
|
|
|
if data["blackjack games"][channel]["all standing"]:
|
|
logThis("All are standing")
|
|
with open("resources/games/games.json", "w") as f:
|
|
json.dump(data,f,indent=4)
|
|
|
|
done = dealerDraw(channel)
|
|
message = "The dealer draws a card."
|
|
|
|
with open("resources/games/games.json", "r") as f:
|
|
data = json.load(f)
|
|
|
|
for user in data["blackjack games"][channel]["user hands"]:
|
|
if data["blackjack games"][channel]["user hands"][user]["hit"] == False:
|
|
data["blackjack games"][channel]["user hands"][user]["standing"] = True
|
|
|
|
if data["blackjack games"][channel]["user hands"][user]["standing"] == False:
|
|
allStanding = False
|
|
|
|
if calcHandValue(data["blackjack games"][channel]["user hands"][user]["hand"]) >= 21 or data["blackjack games"][channel]["user hands"][user]["doubled"]:
|
|
data["blackjack games"][channel]["user hands"][user]["standing"] = True
|
|
else:
|
|
preAllStanding = False
|
|
|
|
data["blackjack games"][channel]["user hands"][user]["hit"] = False
|
|
|
|
if data["blackjack games"][channel]["user hands"][user]["split"]:
|
|
if data["blackjack games"][channel]["user hands"][user]["other hand"]["hit"] == False:
|
|
data["blackjack games"][channel]["user hands"][user]["other hand"]["standing"] = True
|
|
|
|
if data["blackjack games"][channel]["user hands"][user]["other hand"]["standing"] == False:
|
|
allStanding = False
|
|
|
|
if calcHandValue(data["blackjack games"][channel]["user hands"][user]["other hand"]["hand"]) >= 21 or data["blackjack games"][channel]["user hands"][user]["other hand"]["doubled"]:
|
|
data["blackjack games"][channel]["user hands"][user]["other hand"]["standing"] = True
|
|
else:
|
|
preAllStanding = False
|
|
|
|
data["blackjack games"][channel]["user hands"][user]["other hand"]["hit"] = False
|
|
|
|
if allStanding:
|
|
data["blackjack games"][channel]["all standing"] = True
|
|
with open("resources/games/games.json", "w") as f:
|
|
json.dump(data,f,indent=4)
|
|
else:
|
|
with open("resources/games/games.json", "w") as f:
|
|
json.dump(data,f,indent=4)
|
|
|
|
blackjackDraw.drawImage(channel)
|
|
|
|
if allStanding:
|
|
if done == False:
|
|
return message, True, done
|
|
else:
|
|
return "The dealer is done drawing cards", True, done
|
|
elif preAllStanding:
|
|
return "", True, done
|
|
else:
|
|
if data["blackjack games"][channel]["round"] == 1:
|
|
firstRoundMessage = ". You can also double down with \"!blackjack double\" or split with \"!blackjack split\""
|
|
else:
|
|
firstRoundMessage = ""
|
|
return "You have 2 minutes to either hit or stand with \"!blackjack hit\" or \"!blackjack stand\""+firstRoundMessage+". It's assumed you're standing if you don't make a choice.", False, done
|
|
|
|
# When players try to hit
|
|
def blackjackHit(channel,user,handNumber = 0):
|
|
with open("resources/games/games.json", "r") as f:
|
|
data = json.load(f)
|
|
|
|
if user in data["blackjack games"][channel]["user hands"]:
|
|
if data["blackjack games"][channel]["user hands"][user]["split"] == False:
|
|
hand = data["blackjack games"][channel]["user hands"][user]
|
|
otherHand = False
|
|
else:
|
|
if handNumber != 0:
|
|
if handNumber == 1:
|
|
hand = data["blackjack games"][channel]["user hands"][user]
|
|
otherHand = False
|
|
elif handNumber == 2:
|
|
hand = data["blackjack games"][channel]["user hands"][user]["other hand"]
|
|
otherHand = True
|
|
else:
|
|
logThis(user+" tried to hit without specifying which hand")
|
|
return "You have to specify the hand you're hitting with."
|
|
else:
|
|
logThis(user+" tried to hit without specifying which hand")
|
|
return "You have to specify the hand you're hitting with."
|
|
|
|
if data["blackjack games"][channel]["round"] > 0:
|
|
if hand["hit"] == False:
|
|
if hand["standing"] == False:
|
|
hand["hand"].append(drawCard())
|
|
hand["hit"] = True
|
|
|
|
handValue = calcHandValue(hand["hand"])
|
|
|
|
if handValue > 21:
|
|
hand["busted"] = True
|
|
|
|
if otherHand:
|
|
data["blackjack games"][channel]["user hands"][user]["other hand"] = hand
|
|
else:
|
|
data["blackjack games"][channel]["user hands"][user] = hand
|
|
|
|
with open("resources/games/games.json", "w") as f:
|
|
json.dump(data,f,indent=4)
|
|
|
|
response = "accept"
|
|
roundDone = True
|
|
|
|
for person in data["blackjack games"][channel]["user hands"].values():
|
|
if person["hit"] == False and person["standing"] == False:
|
|
roundDone = False
|
|
|
|
if person["split"]:
|
|
if person["other hand"]["hit"] == False and person["other hand"]["standing"] == False:
|
|
roundDone = False
|
|
|
|
return response + str(roundDone)[0] + str(data["blackjack games"][channel]["round"])
|
|
else:
|
|
logThis(user+" is already standing")
|
|
return "You can't hit when you're standing"
|
|
else:
|
|
logThis(user+" has already hit this round")
|
|
return "You've already hit this round"
|
|
else:
|
|
logThis(user+" tried to hit on the 0th round")
|
|
return "You can't hit before you see your cards"
|
|
else:
|
|
logThis(user+" tried to hit without being in the game")
|
|
return "You have to enter the game before you can hit"
|
|
|
|
|
|
# When players try to double down
|
|
def blackjackDouble(channel,user,handNumber = 0):
|
|
with open("resources/games/games.json", "r") as f:
|
|
data = json.load(f)
|
|
|
|
if data["blackjack games"][channel]["user hands"][user]["split"] == False:
|
|
hand = data["blackjack games"][channel]["user hands"][user]
|
|
otherHand = False
|
|
correctRound = 1
|
|
else:
|
|
if handNumber != 0:
|
|
if handNumber == 1:
|
|
hand = data["blackjack games"][channel]["user hands"][user]
|
|
otherHand = False
|
|
elif handNumber == 2:
|
|
hand = data["blackjack games"][channel]["user hands"][user]["other hand"]
|
|
otherHand = True
|
|
else:
|
|
logThis(user+" tried to double without specifying which hand")
|
|
return "You have to specify the hand you're doubling down.",""
|
|
else:
|
|
logThis(user+" tried to double without specifying which hand")
|
|
return "You have to specify the hand you're doubling down.",""
|
|
correctRound = 2
|
|
|
|
|
|
if data["blackjack games"][channel]["round"] > 0:
|
|
if hand["hit"] == False:
|
|
if hand["standing"] == False:
|
|
if data["blackjack games"][channel]["round"] == correctRound:
|
|
bet = hand["bet"]
|
|
if money.checkBalance(user) >= bet:
|
|
money.addMoney(user,-1 * bet)
|
|
with open("resources/games/games.json", "r") as f:
|
|
data = json.load(f)
|
|
|
|
hand["hand"].append(drawCard())
|
|
hand["hit"] = True
|
|
hand["doubled"] = True
|
|
hand["bet"] += bet
|
|
|
|
handValue = calcHandValue(hand["hand"])
|
|
|
|
|
|
if handValue > 21:
|
|
hand["busted"] = True
|
|
|
|
if otherHand:
|
|
data["blackjack games"][channel]["user hands"][user]["other hand"] = hand
|
|
else:
|
|
data["blackjack games"][channel]["user hands"][user] = hand
|
|
|
|
with open("resources/games/games.json", "w") as f:
|
|
json.dump(data,f,indent=4)
|
|
|
|
roundDone = True
|
|
|
|
for person in data["blackjack games"][channel]["user hands"].values():
|
|
if person["hit"] == False and person["standing"] == False:
|
|
roundDone = False
|
|
|
|
if person["split"]:
|
|
if person["other hand"]["hit"] == False and person["other hand"]["standing"] == False:
|
|
roundDone = False
|
|
|
|
|
|
return "Adding another "+str(bet)+" GwendoBucks to "+user+"'s bet and drawing another card.",str(roundDone)[0] + str(data["blackjack games"][channel]["round"])
|
|
else:
|
|
logThis(user+" doesn't have enough GwendoBucks")
|
|
return "You don't have enough GwendoBucks",""
|
|
else:
|
|
logThis(user+" tried to double on round "+str(data["blackjack games"][channel]["round"]))
|
|
return "You can only double down on the first round",""
|
|
else:
|
|
logThis(user+" is already standing")
|
|
return "You can't double when you're standing",""
|
|
else:
|
|
logThis(user+" has already hit this round")
|
|
return "You've already hit this round",""
|
|
else:
|
|
logThis(user+" tried to double on the 0th round")
|
|
return "You can't double down before you see your cards",""
|
|
|
|
# When players try to stand
|
|
def blackjackStand(channel,user,handNumber = 0):
|
|
with open("resources/games/games.json", "r") as f:
|
|
data = json.load(f)
|
|
|
|
if user in data["blackjack games"][channel]["user hands"]:
|
|
hand = data["blackjack games"][channel]["user hands"][user]
|
|
if data["blackjack games"][channel]["round"] > 0:
|
|
if hand["hit"] == False:
|
|
if hand["standing"] == False:
|
|
hand["standing"] = True
|
|
with open("resources/games/games.json", "w") as f:
|
|
json.dump(data,f,indent=4)
|
|
|
|
response = "accept"
|
|
roundDone = True
|
|
|
|
for person in data["blackjack games"][channel]["user hands"].values():
|
|
if person["hit"] == False and person["standing"] == False:
|
|
roundDone = False
|
|
|
|
if person["split"]:
|
|
if person["other hand"]["hit"] == False and person["other hand"]["standing"] == False:
|
|
roundDone = False
|
|
|
|
return response + str(roundDone)[0] + str(data["blackjack games"][channel]["round"])
|
|
else:
|
|
logThis(user+" is already standing")
|
|
return "You're already standing"
|
|
else:
|
|
logThis(user+" has already hit this round")
|
|
return "You've already hit this round"
|
|
else:
|
|
logThis(user+" tried to stand on the first round")
|
|
return "You can't stand before you see your cards"
|
|
else:
|
|
logThis(user+" tried to stand without being in the game")
|
|
return "You have to enter the game before you can stand"
|
|
|
|
# When players try to split
|
|
def blackjackSplit(channel,user):
|
|
with open("resources/games/games.json", "r") as f:
|
|
data = json.load(f)
|
|
|
|
if data["blackjack games"][channel]["round"] > 0:
|
|
if data["blackjack games"][channel]["user hands"][user]["hit"] == False:
|
|
if data["blackjack games"][channel]["user hands"][user]["standing"] == False:
|
|
if data["blackjack games"][channel]["round"] == 1:
|
|
firstCard = calcHandValue([data["blackjack games"][channel]["user hands"][user]["hand"][0]])
|
|
secondCard = calcHandValue([data["blackjack games"][channel]["user hands"][user]["hand"][1]])
|
|
if firstCard == secondCard:
|
|
bet = data["blackjack games"][channel]["user hands"][user]["bet"]
|
|
if money.checkBalance(user) >= bet:
|
|
money.addMoney(user,-1 * bet)
|
|
with open("resources/games/games.json", "r") as f:
|
|
data = json.load(f)
|
|
|
|
|
|
data["blackjack games"][channel]["user hands"][user]["hit"] = True
|
|
data["blackjack games"][channel]["user hands"][user]["other hand"]["hit"] = True
|
|
data["blackjack games"][channel]["user hands"][user]["split"] = True
|
|
|
|
data["blackjack games"][channel]["user hands"][user]["other hand"]["bet"] = data["blackjack games"][channel]["user hands"][user]["bet"]
|
|
|
|
data["blackjack games"][channel]["user hands"][user]["other hand"]["hand"].append(data["blackjack games"][channel]["user hands"][user]["hand"].pop(1))
|
|
data["blackjack games"][channel]["user hands"][user]["other hand"]["hand"].append(drawCard())
|
|
data["blackjack games"][channel]["user hands"][user]["hand"].append(drawCard())
|
|
|
|
handValue = calcHandValue(data["blackjack games"][channel]["user hands"][user]["hand"])
|
|
otherHandValue = calcHandValue(data["blackjack games"][channel]["user hands"][user]["other hand"]["hand"])
|
|
if handValue > 21:
|
|
data["blackjack games"][channel]["user hands"][user]["busted"] = True
|
|
elif handValue == 21:
|
|
data["blackjack games"][channel]["user hands"][user]["blackjack"] = True
|
|
|
|
if otherHandValue > 21:
|
|
data["blackjack games"][channel]["user hands"][user]["other hand"]["busted"] = True
|
|
elif otherHandValue == 21:
|
|
data["blackjack games"][channel]["user hands"][user]["other hand"]["blackjack"] = True
|
|
|
|
|
|
with open("resources/games/games.json", "w") as f:
|
|
json.dump(data,f,indent=4)
|
|
|
|
roundDone = True
|
|
|
|
for person in data["blackjack games"][channel]["user hands"].values():
|
|
if person["hit"] == False and person["standing"] == False:
|
|
roundDone = False
|
|
|
|
if person["split"]:
|
|
if person["other hand"]["hit"] == False and person["other hand"]["standing"] == False:
|
|
roundDone = False
|
|
|
|
return "Splitting "+user+"'s hand into 2. Adding their original bet to the second hand. You can use \"!Blackjack hit/stand/double 1\" and \"!Blackjack hit/stand/double 2\" to play the different hands.",str(roundDone)[0] + str(data["blackjack games"][channel]["round"])
|
|
else:
|
|
logThis(user+" doesn't have enough GwendoBucks")
|
|
return "You don't have enough GwendoBucks",""
|
|
else:
|
|
logThis(user+" tried to split 2 different cards")
|
|
return "Your cards need to have the same value to split",""
|
|
else:
|
|
logThis(user+" tried to split on round "+data["blackjack games"][channel]["round"])
|
|
return "You can only split on the first round",""
|
|
else:
|
|
logThis(user+" is already standing")
|
|
return "You can't split when you're standing",""
|
|
else:
|
|
logThis(user+" has already hit this round")
|
|
return "You've already hit this round",""
|
|
else:
|
|
logThis(user+" tried to split on the 0th round")
|
|
return "You can't split before you see your cards",""
|
|
|
|
# Player enters the game and draws a hand
|
|
def blackjackPlayerDrawHand(channel,user,bet):
|
|
with open("resources/games/games.json", "r") as f:
|
|
data = json.load(f)
|
|
|
|
logThis(user+" is trying to join the game in "+channel)
|
|
|
|
if channel in data["blackjack games"]:
|
|
if user not in data["blackjack games"][channel]["user hands"]:
|
|
if len(data["blackjack games"][channel]["user hands"]) < 5:
|
|
if data["blackjack games"][channel]["round"] == 0:
|
|
if bet >= 0:
|
|
if money.checkBalance(user) >= bet:
|
|
money.addMoney(user,-1 * bet)
|
|
playerHand = [drawCard(),drawCard()]
|
|
|
|
handValue = calcHandValue(playerHand)
|
|
|
|
with open("resources/games/games.json", "r") as f:
|
|
data = json.load(f)
|
|
|
|
if handValue == 21:
|
|
data["blackjack games"][channel]["user hands"][user] = {"hand":playerHand,
|
|
"bet":bet,"standing":False,"busted":False,"blackjack":True,"hit":True,
|
|
"doubled":False,"split":False,"other hand":{
|
|
"hand":[],"bet":0,"standing":False,"busted":False,"blackjack":False,"hit":True,
|
|
"doubled":False}}
|
|
else:
|
|
data["blackjack games"][channel]["user hands"][user] = {"hand":playerHand,
|
|
"bet":bet,"standing":False,"busted":False,"blackjack":False,"hit":True,
|
|
"doubled":False,"split":False,"other hand":{
|
|
"hand":[],"bet":0,"standing":False,"busted":False,"blackjack":False,"hit":True,
|
|
"doubled":False}}
|
|
|
|
with open("resources/games/games.json", "w") as f:
|
|
json.dump(data,f,indent=4)
|
|
|
|
logThis(user+" entered the game")
|
|
return user+" entered the game"
|
|
else:
|
|
logThis(user+" doesn't have enough GwendoBucks")
|
|
return "You don't have enough GwendoBucks to place that bet"
|
|
else:
|
|
logThis(user+" tried to bet a negative amount")
|
|
return "You can't bet a negative amount"
|
|
else:
|
|
logThis("The table is no longer open for bets")
|
|
return "The table is no longer open for bets"
|
|
else:
|
|
logThis("There are already 5 players in the game.")
|
|
return "There's already a maximum of players at the table."
|
|
else:
|
|
logThis(user+" is already in the game")
|
|
return "You've already entered this game"
|
|
else:
|
|
logThis("There is no game going on in "+channel)
|
|
return "There is no game going on in this channel"
|
|
|
|
# Starts a game of blackjack
|
|
def blackjackStart(channel:str):
|
|
with open("resources/games/games.json", "r") as f:
|
|
data = json.load(f)
|
|
|
|
logThis("Trying to start a blackjack game in "+channel)
|
|
|
|
if channel not in data["blackjack games"]:
|
|
|
|
dealerHand = [drawCard(),drawCard()]
|
|
|
|
data["blackjack games"][channel] = {"dealer hand": dealerHand,"dealer busted":False,"dealer blackjack":False,"user hands": {},"all standing":False,"round":0}
|
|
|
|
if calcHandValue(dealerHand) == 21:
|
|
data["blackjack games"][channel]["dealer blackjack"] = True
|
|
|
|
with open("resources/games/games.json", "w") as f:
|
|
json.dump(data,f,indent=4)
|
|
|
|
copyfile("resources/games/blackjackTable.png","resources/games/blackjackTables/blackjackTable"+channel+".png")
|
|
|
|
return "started"
|
|
else:
|
|
logThis("There is already a blackjack game going on in "+channel)
|
|
return "There's already a blackjack game going on. Try again in a few minutes."
|
|
|
|
# Ends the game and calculates winnings
|
|
def blackjackFinish(channel):
|
|
finalWinnings = "*Final Winnings:*\n"
|
|
|
|
with open("resources/games/games.json", "r") as f:
|
|
data = json.load(f)
|
|
|
|
dealerValue = calcHandValue(data["blackjack games"][channel]["dealer hand"])
|
|
reason = ""
|
|
|
|
for user in data["blackjack games"][channel]["user hands"]:
|
|
winnings = -1 * data["blackjack games"][channel]["user hands"][user]["bet"]
|
|
if data["blackjack games"][channel]["user hands"][user]["blackjack"] and data["blackjack games"][channel]["dealer blackjack"] == False:
|
|
reason = "(blackjack)"
|
|
winnings += math.floor(2.5 * data["blackjack games"][channel]["user hands"][user]["bet"])
|
|
elif data["blackjack games"][channel]["dealer blackjack"]:
|
|
reason += "(dealer blackjack)"
|
|
elif data["blackjack games"][channel]["user hands"][user]["busted"]:
|
|
reason = "(busted)"
|
|
else:
|
|
if data["blackjack games"][channel]["dealer busted"]:
|
|
reason = "(dealer busted)"
|
|
winnings += 2 * data["blackjack games"][channel]["user hands"][user]["bet"]
|
|
elif calcHandValue(data["blackjack games"][channel]["user hands"][user]["hand"]) > dealerValue:
|
|
winnings += 2 * data["blackjack games"][channel]["user hands"][user]["bet"]
|
|
reason = "(highest value)"
|
|
elif calcHandValue(data["blackjack games"][channel]["user hands"][user]["hand"]) == dealerValue:
|
|
reason = "(pushed)"
|
|
winnings += data["blackjack games"][channel]["user hands"][user]["bet"]
|
|
else:
|
|
reason = "(highest value)"
|
|
|
|
|
|
if data["blackjack games"][channel]["user hands"][user]["split"]:
|
|
winnings -= data["blackjack games"][channel]["user hands"][user]["other hand"]["bet"]
|
|
if data["blackjack games"][channel]["user hands"][user]["other hand"]["blackjack"] and data["blackjack games"][channel]["dealer blackjack"] == False:
|
|
reason += "(blackjack)"
|
|
winnings += math.floor(2.5 * data["blackjack games"][channel]["user hands"][user]["other hand"]["bet"])
|
|
elif data["blackjack games"][channel]["dealer blackjack"]:
|
|
reason += "(dealer blackjack)"
|
|
elif data["blackjack games"][channel]["user hands"][user]["busted"]:
|
|
reason = "(busted)"
|
|
else:
|
|
if data["blackjack games"][channel]["dealer busted"]:
|
|
reason += "(dealer busted)"
|
|
winnings += 2 * data["blackjack games"][channel]["user hands"][user]["other hand"]["bet"]
|
|
elif calcHandValue(data["blackjack games"][channel]["user hands"][user]["other hand"]["hand"]) > dealerValue:
|
|
reason += "(highest value)"
|
|
winnings += 2 * data["blackjack games"][channel]["user hands"][user]["other hand"]["bet"]
|
|
elif calcHandValue(data["blackjack games"][channel]["user hands"][user]["other hand"]["hand"]) == dealerValue:
|
|
reason += "(pushed)"
|
|
winnings += data["blackjack games"][channel]["user hands"][user]["other hand"]["bet"]
|
|
else:
|
|
reason += "(highest value)"
|
|
|
|
|
|
|
|
if winnings < 0:
|
|
if winnings == -1:
|
|
finalWinnings += user+" lost "+str(-1 * winnings)+" GwendoBuck "+reason+"\n"
|
|
else:
|
|
finalWinnings += user+" lost "+str(-1 * winnings)+" GwendoBucks "+reason+"\n"
|
|
else:
|
|
if winnings == 1:
|
|
finalWinnings += user+" won "+str(winnings)+" GwendoBuck "+reason+"\n"
|
|
else:
|
|
finalWinnings += user+" won "+str(winnings)+" GwendoBucks "+reason+"\n"
|
|
|
|
netWinnings = winnings + data["blackjack games"][channel]["user hands"][user]["bet"] + data["blackjack games"][channel]["user hands"][user]["other hand"]["bet"]
|
|
|
|
money.addMoney(user,netWinnings)
|
|
|
|
with open("resources/games/games.json", "r") as f:
|
|
data = json.load(f)
|
|
|
|
del data["blackjack games"][channel]
|
|
|
|
with open("resources/games/games.json", "w") as f:
|
|
json.dump(data,f,indent=4)
|
|
|
|
return finalWinnings
|