File size: 6,831 Bytes
732ca45 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 | # cogs/help.py
import discord
from discord import app_commands
from discord.ext import commands
# Define the categories and their fully updated Sueni commands
HELP_DATA = {
"Getting Started & Economy": {
"description": "Welcome to sueni.bot! Here is your core daily loop to build your wealth.",
"commands": [
("`susp`", "Type this directly in chat (no slash) to drop a random character! (8m cooldown)"),
("`/sudaily`", "Claim your free 100 Coins every 24 hours."),
("`/subalance`", "Check your current Coins and Hero Dust."),
("`/sushop view`", "Browse the Void Shop to buy Time Winders and Dust Caches."),
("`/sumail`", "π¬ Check your inbox for system messages, auction payouts, and free rewards!")
]
},
"Inventory & Wishlist": {
"description": "Manage your growing collection using unique alphanumeric codes.",
"commands": [
("`/suinventory [series]`", "Page through your character collection. Use the dropdown to inspect cards!"),
("`/suinfo <code>`", "Inspect ANY character card globally by its code to see stats and ownership."),
("`/sufavourite <code>`", "Add a card you see on the market to your personal Wishlist."),
("`/suwishlist`", "View all your favourited cards.")
]
},
"Progression & Crafting": {
"description": "Turn your duplicate and unwanted cards into raw power.",
"commands": [
("`/suascend <code> [levels]`", "Spend Coins and Dust to level up a character (Max Lvl 100)."),
("`/sufuse <target_code> <sacrifice_code>`", "Sacrifice an exact duplicate to unlock Constellations (Max C6 Awakened!)."),
("`/suscrap <code>`", "Destroy an unwanted card to receive Coins or Dust (Yield depends on C/R/SR/SSR/UR)."),
("`/suforge`", "Spend 500 Hero Dust to guarantee a random SSR or UR drop!")
]
},
"Vanguard & Combat": {
"description": "Build your ultimate team to activate Elemental/Rarity Synergies and fight players.",
"commands": [
("`/suteam view`", "View your active 3-character Vanguard, Total Power, and Elemental Synergies."),
("`/suteam equip <slot> <code>`", "Assign a character to Slot 1, 2, or 3."),
("`/suhunt <target>`", "Attack a player on the Global Hit List to steal their Coins and Dust!"),
("`/suduel <target>`", "Challenge another player to a high-stakes PvP battle, wagering Coins, Dust, or Cards.")
]
},
"Expeditions (Idle)": {
"description": "Send your characters out into the world to gather passive income.",
"commands": [
("`/suexp start <code> <duration>`", "Send a character away for 4, 8, 12, or 24 hours."),
("`/suexp claim <code>`", "Welcome your character back and collect their Coins and Dust."),
("`/suexp list`", "View the countdown timers for all your active expeditions.")
]
},
"Market & Trading": {
"description": "The player-driven global economy. Buy, sell, and trade characters!",
"commands": [
("`/sumarket view`", "Browse the paginated global marketplace for characters."),
("`/sumarket list <code> <price> <currency>`", "Put one of your characters up for sale (10% Black Market Tax applies!)."),
("`/sumarket buy <listing_id>`", "Purchase a character directly from the market."),
("`/sutrade <user> <my_code> <their_code>`", "Propose a direct 1-for-1 character swap with another player.")
]
},
"Profile & Leaderboards": {
"description": "Flex your wealth, titles, and rarest pulls with gorgeous UI.",
"commands": [
("`/suprofile [user]`", "View your dynamic visual profile and 8-card cosmetic grid."),
("`/sudisplay set <slot> <code>`", "Equip a card to slots 1-8 on your visual profile."),
("`/sutitle list` & `/sutitle equip`", "View and equip your unlocked achievements."),
("`/suleaderboard <category>`", "Check the Top Wealth, Dust, Collectors, Grinders, or Pity rankings.")
]
}
}
class HelpDropdown(discord.ui.Select):
def __init__(self):
options = [
discord.SelectOption(label="Getting Started & Economy", description="The basics, drops, and daily loop", emoji="π°"),
discord.SelectOption(label="Inventory & Wishlist", description="Inspect and manage your collection", emoji="π"),
discord.SelectOption(label="Progression & Crafting", description="Ascension, Constellations, and Forging", emoji="βοΈ"),
discord.SelectOption(label="Vanguard & Combat", description="Synergies, Bounties, and PvP Duels", emoji="βοΈ"),
discord.SelectOption(label="Expeditions (Idle)", description="Passive resource gathering", emoji="ποΈ"),
discord.SelectOption(label="Market & Trading", description="Player-driven global economy", emoji="πͺ"),
discord.SelectOption(label="Profile & Leaderboards", description="Visual grids, titles, and rankings", emoji="π")
]
super().__init__(placeholder="Choose a category to explore...", min_values=1, max_values=1, options=options)
async def callback(self, interaction: discord.Interaction):
category = self.values[0]
data = HELP_DATA[category]
embed = discord.Embed(
title=f"{category} Guide",
description=f"*{data['description']}*",
color=discord.Color.blue()
)
for cmd, desc in data["commands"]:
embed.add_field(name=cmd, value=desc, inline=False)
embed.set_footer(text="Sueni Bot Framework | Use the dropdown menu to navigate")
await interaction.response.edit_message(embed=embed)
class HelpView(discord.ui.View):
def __init__(self):
super().__init__(timeout=180)
self.add_item(HelpDropdown())
class HelpCog(commands.Cog):
def __init__(self, bot):
self.bot = bot
@app_commands.command(name="suhelp", description="View the interactive guide on how to play the game")
async def help_command(self, interaction: discord.Interaction):
embed = discord.Embed(
title="π Sueni Bot Guide",
description="Welcome to sueni.bot! Use the dropdown menu below to learn about the different systems, commands, and how to build the ultimate Vanguard team.",
color=discord.Color.blurple()
)
embed.set_thumbnail(url=self.bot.user.display_avatar.url)
view = HelpView()
await interaction.response.send_message(embed=embed, view=view)
async def setup(bot):
await bot.add_cog(HelpCog(bot))
|