coollsd commited on
Commit
3a9dd4c
1 Parent(s): ca6040a

Update roulette.py

Browse files
Files changed (1) hide show
  1. roulette.py +25 -14
roulette.py CHANGED
@@ -5,10 +5,10 @@ import random
5
  from cash import user_cash
6
 
7
  @app_commands.command(name="roulette", description="Play roulette and bet")
8
- async def roulette(interaction: discord.Interaction, bet: int):
9
- await play_roulette(interaction, bet)
10
 
11
- async def play_roulette(interaction: discord.Interaction, bet: int):
12
  user_id = interaction.user.id
13
  balance = user_cash.get(user_id, 0)
14
 
@@ -17,28 +17,37 @@ async def play_roulette(interaction: discord.Interaction, bet: int):
17
  return
18
 
19
  if bet > balance:
20
- await interaction.response.send_message(f"You don't have enough cash. Your current balance is ${balance:.2f}")
 
 
 
 
21
  return
22
 
23
- embed = discord.Embed(title="Roulette Game", description=f"{interaction.user.name} is betting ${bet:.2f}", color=0x3498db)
24
  embed.add_field(name="Current Balance", value=f"${balance:.2f}", inline=False)
25
 
26
  spin_button = discord.ui.Button(style=discord.ButtonStyle.primary, label="Spin the Roulette", custom_id="spin_roulette")
27
 
28
  async def spin_roulette_callback(interaction: discord.Interaction):
29
  nonlocal balance
30
- result = random.choice(["win", "lose"])
 
31
 
32
- if result == "win":
33
- winnings = bet * 2 # Assuming a simple win condition for demonstration
34
- balance += winnings
35
- result_text = f"You won ${winnings:.2f}!"
36
  else:
37
- balance -= bet
38
- result_text = f"You lost ${bet:.2f}."
39
 
 
40
  user_cash[user_id] = balance
41
 
 
 
 
42
  embed.clear_fields()
43
  embed.add_field(name="Result", value=result_text, inline=False)
44
  embed.add_field(name="New Balance", value=f"${balance:.2f}", inline=False)
@@ -47,7 +56,7 @@ async def play_roulette(interaction: discord.Interaction, bet: int):
47
 
48
  async def spin_again_callback(interaction: discord.Interaction):
49
  if interaction.user.id == user_id:
50
- await play_roulette(interaction, bet)
51
  else:
52
  await interaction.response.send_message("You can't spin this.", ephemeral=True)
53
 
@@ -66,4 +75,6 @@ async def play_roulette(interaction: discord.Interaction, bet: int):
66
  if interaction.response.is_done():
67
  await interaction.followup.send(embed=embed, view=view)
68
  else:
69
- await interaction.response.send_message(embed=embed, view=view)
 
 
 
5
  from cash import user_cash
6
 
7
  @app_commands.command(name="roulette", description="Play roulette and bet")
8
+ async def roulette(interaction: discord.Interaction, bet: int, choice: str):
9
+ await play_roulette(interaction, bet, choice)
10
 
11
+ async def play_roulette(interaction: discord.Interaction, bet: int, choice: str):
12
  user_id = interaction.user.id
13
  balance = user_cash.get(user_id, 0)
14
 
 
17
  return
18
 
19
  if bet > balance:
20
+ await interaction.response.send_message(f"you got no money. Your current balance is ${balance:.2f}")
21
+ return
22
+
23
+ if choice not in ["red", "black", "green"] and not (choice.isdigit() and 0 <= int(choice) <= 36):
24
+ await interaction.response.send_message("Invalid. Choose 'red', 'black', 'green', or a number between 0 and 36.")
25
  return
26
 
27
+ embed = discord.Embed(title="Roulette Game", description=f"{interaction.user.name} is betting ${bet:.2f} on {choice}", color=0x787878)
28
  embed.add_field(name="Current Balance", value=f"${balance:.2f}", inline=False)
29
 
30
  spin_button = discord.ui.Button(style=discord.ButtonStyle.primary, label="Spin the Roulette", custom_id="spin_roulette")
31
 
32
  async def spin_roulette_callback(interaction: discord.Interaction):
33
  nonlocal balance
34
+ result_number = random.randint(0, 36)
35
+ result_color = "green" if result_number == 0 else ("red" if result_number % 2 == 1 else "black")
36
 
37
+ win = False
38
+ if choice.isdigit():
39
+ win = int(choice) == result_number
40
+ payout = bet * 35 if win else -bet
41
  else:
42
+ win = choice == result_color
43
+ payout = bet * 2 if win else -bet
44
 
45
+ balance += payout
46
  user_cash[user_id] = balance
47
 
48
+ result_text = f"The ball landed on {result_color} {result_number}. "
49
+ result_text += f"You {'won' if win else 'lost'} ${abs(payout):.2f}."
50
+
51
  embed.clear_fields()
52
  embed.add_field(name="Result", value=result_text, inline=False)
53
  embed.add_field(name="New Balance", value=f"${balance:.2f}", inline=False)
 
56
 
57
  async def spin_again_callback(interaction: discord.Interaction):
58
  if interaction.user.id == user_id:
59
+ await play_roulette(interaction, bet, choice)
60
  else:
61
  await interaction.response.send_message("You can't spin this.", ephemeral=True)
62
 
 
75
  if interaction.response.is_done():
76
  await interaction.followup.send(embed=embed, view=view)
77
  else:
78
+ await interaction.response.send_message(embed=embed, view=view)
79
+
80
+ # Ensure you have set up your bot and registered this command appropriately in your bot setup code.