coollsd commited on
Commit
2597110
·
verified ·
1 Parent(s): ba32757

Update petroll.py

Browse files
Files changed (1) hide show
  1. petroll.py +28 -9
petroll.py CHANGED
@@ -34,12 +34,31 @@ async def perform_roll(interaction: discord.Interaction):
34
  user_id = interaction.user.id
35
  luck_multiplier = luck_multipliers.get(user_id, 1)
36
 
 
37
  sorted_pets = sorted(pets, key=lambda x: x['configData']['difficulty'])
38
 
39
- max_index = len(sorted_pets) - 1
40
- index = int(max_index * (luck_multiplier - 1) / 9)
 
41
 
42
- rolled_pet = random.choice(sorted_pets[:index+1])
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
43
 
44
  pet_rap = next((pet for pet in rap_data['data'] if pet['configData']['id'] == rolled_pet['configName']), None)
45
 
@@ -70,7 +89,7 @@ async def perform_roll(interaction: discord.Interaction):
70
  if user_id in luck_expiration:
71
  remaining_time = int(luck_expiration[user_id] - time.time())
72
  if remaining_time > 0:
73
- luck_percentage = (luck_multiplier - 1) * 100
74
  luck_text = f"\nYou have {remaining_time // 60} minutes and {remaining_time % 60} seconds of luck left! ({luck_percentage}% luck)"
75
  else:
76
  del luck_multipliers[user_id]
@@ -113,17 +132,17 @@ async def perform_roll(interaction: discord.Interaction):
113
  view.add_item(sell_button)
114
 
115
  if user_id not in first_luck_claimed:
116
- first_luck_button = discord.ui.Button(style=discord.ButtonStyle.success, label="Claim 100% Luck Forever", custom_id="first_luck")
117
 
118
  async def first_luck_callback(interaction: discord.Interaction):
119
  if interaction.user.id != user_id:
120
  await interaction.response.send_message("You cannot use this button.", ephemeral=True)
121
  return
122
 
123
- luck_multipliers[user_id] = 10 # 100% luck
124
  first_luck_claimed.add(user_id)
125
 
126
- await interaction.response.send_message("You've claimed 100% luck forever!", ephemeral=True)
127
 
128
  for item in view.children:
129
  if item.custom_id == "first_luck":
@@ -148,7 +167,7 @@ async def perform_roll(interaction: discord.Interaction):
148
  return
149
 
150
  current_luck = luck_multipliers.get(user_id, 1)
151
- new_luck = min(current_luck + 1, 10)
152
  luck_multipliers[user_id] = new_luck
153
  luck_expiration[user_id] = time.time() + 1800
154
 
@@ -157,7 +176,7 @@ async def perform_roll(interaction: discord.Interaction):
157
  used_luck_opportunities[user_id].add(luck_opportunities[user_id])
158
 
159
  luck_percentage = (new_luck - 1) * 100
160
- await interaction.response.send_message(f"Your luck has been increased to {luck_percentage}% for 30 minutes!", ephemeral=True)
161
 
162
  for item in view.children:
163
  if item.custom_id == interaction.custom_id:
 
34
  user_id = interaction.user.id
35
  luck_multiplier = luck_multipliers.get(user_id, 1)
36
 
37
+ # Sort pets by difficulty (rarity)
38
  sorted_pets = sorted(pets, key=lambda x: x['configData']['difficulty'])
39
 
40
+ # Divide pets into tiers
41
+ tier_size = len(sorted_pets) // 5
42
+ tiers = [sorted_pets[i:i+tier_size] for i in range(0, len(sorted_pets), tier_size)]
43
 
44
+ # Adjust probabilities based on luck
45
+ tier_probabilities = [0.5, 0.25, 0.15, 0.07, 0.03]
46
+ luck_boost = (luck_multiplier - 1) * 0.1 # 10% boost per luck level
47
+ for i in range(len(tier_probabilities)):
48
+ if i < len(tier_probabilities) - 1:
49
+ tier_probabilities[i] -= luck_boost
50
+ tier_probabilities[i+1] += luck_boost
51
+
52
+ # Ensure probabilities are non-negative and sum to 1
53
+ tier_probabilities = [max(0, p) for p in tier_probabilities]
54
+ total = sum(tier_probabilities)
55
+ tier_probabilities = [p / total for p in tier_probabilities]
56
+
57
+ # Select tier based on probabilities
58
+ selected_tier = random.choices(tiers, weights=tier_probabilities)[0]
59
+
60
+ # Select pet from the chosen tier
61
+ rolled_pet = random.choice(selected_tier)
62
 
63
  pet_rap = next((pet for pet in rap_data['data'] if pet['configData']['id'] == rolled_pet['configName']), None)
64
 
 
89
  if user_id in luck_expiration:
90
  remaining_time = int(luck_expiration[user_id] - time.time())
91
  if remaining_time > 0:
92
+ luck_percentage = (luck_multiplier - 1) * 10
93
  luck_text = f"\nYou have {remaining_time // 60} minutes and {remaining_time % 60} seconds of luck left! ({luck_percentage}% luck)"
94
  else:
95
  del luck_multipliers[user_id]
 
132
  view.add_item(sell_button)
133
 
134
  if user_id not in first_luck_claimed:
135
+ first_luck_button = discord.ui.Button(style=discord.ButtonStyle.success, label="Claim 10% Luck Forever", custom_id="first_luck")
136
 
137
  async def first_luck_callback(interaction: discord.Interaction):
138
  if interaction.user.id != user_id:
139
  await interaction.response.send_message("You cannot use this button.", ephemeral=True)
140
  return
141
 
142
+ luck_multipliers[user_id] = 2 # 10% luck
143
  first_luck_claimed.add(user_id)
144
 
145
+ await interaction.response.send_message("You've claimed 10% luck forever!", ephemeral=True)
146
 
147
  for item in view.children:
148
  if item.custom_id == "first_luck":
 
167
  return
168
 
169
  current_luck = luck_multipliers.get(user_id, 1)
170
+ new_luck = min(current_luck + 0.1, 2) # Max 20% luck
171
  luck_multipliers[user_id] = new_luck
172
  luck_expiration[user_id] = time.time() + 1800
173
 
 
176
  used_luck_opportunities[user_id].add(luck_opportunities[user_id])
177
 
178
  luck_percentage = (new_luck - 1) * 100
179
+ await interaction.response.send_message(f"Your luck has been increased to {luck_percentage:.1f}% for 30 minutes!", ephemeral=True)
180
 
181
  for item in view.children:
182
  if item.custom_id == interaction.custom_id: