tldr: Special accounts with in-game support for various restrictions/bonuses for the purposes of tournaments, events, and challenges. Think sealed deck tournaments, short-term closed-economy "ladder"s, or no bazaar challenge (from original)/no money challenge (from here).
Spoiler for Mechanics:
Login screen gets a checkbox that reads "Restricted Account (Tournaments/Events/Challenges)". If checked, it shows extra account creation options before finalizing the account. The options will consist of preset settings for tournaments/events/challenges and the ability to create custom settings (for smaller tournaments or personal challenges).
For PvP stuff like tournaments/events, we can create presets from the available options to provide support for the rules for whatever tournament/event is running next. For challenges, we can just brainstorm whatever challenges sound like fun and add them.
Any special accounts will default to being unable to interact with other accounts with some exceptions. The default "special account isolation" restriction will mean that you cannot appear on normal leaderboards, submit arena decks, affect submitted arena decks' standings/rating/etc, or trade/sell/bazaar. PvP will still generally be allowed, though if random queue pvp (pvp1/pvp2 from original) is implemented, this restriction would also prevent that. Some specific presets would not be subject to default isolation settings, but those would be one-offs. The default would be isolation.
Custom accounts would be provided with a list of restrictions that can be selected as well as the ability to build your own starters in the sense of starting with arbitrary amounts of gold or arbitrary amounts of free packs.
Any special accounts typically cannot ever remove their restrictions. In some cases (mostly for tournaments/events), admins should be able to lift account restrictions after the event and return the accounts to standard accounts. In the short term, this can be handled manually in the database or something, or just by telling people to nuke their accounts and giving them a reward code equal to the contents.
Library view should publicly display any restrictions placed on the account.
While most special accounts should not appear on standard leaderboards, challenge accounts should (eventually) receive their own leaderboards specific to their challenge. If we do "ladder"-style closed economies, the active "ladder" should also have its own leaderboard. Bigger events could also have a temporary leaderboard as well. Doesn't need to happen immediately since the leaderboards can happen retroactively based on the account flags when they're added later.
Spoiler for UI Details:
Move "exit" button on login screen down further into the lower left corner to make more room.
Account creation screen gets checkbox (default unchecked) labeled "Restricted Account (tournament/event/challenge)", probably placed below the "Skip Tutorial" checkbox. I'd like to redesign this entire page someday but that's for another day so this placement works fine for now.
If checked, add text across the top of the screen saying "Restricted Accounts cannot access all features, including trading, arena, and leaderboards." This text should disappear again if someone selects a preset that isn't subject to default isolation rules, but it should be visible anytime a non-isolated preset isn't actively selected (including before anything is selected).
When the box is checked, four options should appear between the "Earth is the element of defense..." text boxes and the newly-lowered exit button. The options should read "Standard (Unrestricted)", "Tournament/Event", "Challenge", and "Custom", with radials or w/e allowing people to select one and only one option. "Tournament/Event" and "Challenge" should have dropdowns below their option, defaulting to "(choose one)". Standard is default radial. If standard remains selected, account is created as normal. If event or challenge are selected, account creation cannot proceed while (choose one) is still in its respective dropdown.
In the space to the right of the radial options, we should add an additional text box that describes the selected option (or, in the case of custom, holds the selectable options). For standard, this text should read "Create a standard, unrestricted account." For event/challenge, it should read "Choose an option" while the (choose one) is selected. When an option is selected, it will have the description of the challenge instead.
Spoiler for Presets:
The preset options should increase over time as we hold more events and people invent more challenges. Please feel free to suggest more challenges below whenever you think of them, and please keep these capabilities in mind when dreaming up pvp events/tournaments.
For right now, some basic presets to start with:
Tournament/Event: the oetg event serp posted on original. Serp can sort out details.
Tournament/Event: "Sealed Deck"
Starting Bonuses: no standard starter, 5 Bronze Packs, 10 Silver Packs, 5 Gold Packs, 2 Platinum Packs
Restrictions: Cannot spend money, cannot enter quests, cannot enter colosseum, cannot win cards from PvE, no daily card.
Text: "Start with 5 Bronze Packs, 10 Silver Packs, 5 Gold Packs, and 2 Platinum Packs, but no starter decks. You can't spend money, gain cards from AI, or enter quests or colosseum."
(this one is presented as a FYI for what we should be doing later on. shouldn't actually start this until there's more than two people to participate in it)
Tournament/Event: "Ladder - Summer 2019"
Starting Bonuses: Standard starter.
Restrictions: none.
Special: Not affected by default isolation. Cannot use bazaar. Can trade with other accounts using the same preset. Can interact with arena/leaderboards/etc normally.
Text: "Closed economy ladder for Summer 2019. Can't use bazaar and can only trade with other ladder participants, but otherwise a normal account."
Challenge: "No Money Challenge"
Starting Bonuses: Standard starter
Restrictions: Cannot spend money.
Text: "Feeling lucky? Feeling greedy? You can gain money but you can't spend it on anything, including upgrading towers. All your cards will come from AI drops, quests, and your starters."
Challenge: "Trader Challenge"
Starting Bonuses: No standard starter. 0 of all packs. (starts with nothing)
Restrictions: Cannot enter quests, cannot enter colosseum, cannot gain money from AI, cannot gain cards from AI, no daily card.
Special: Not affected by default isolation. Can trade/bazaar freely (and all other stuff too).
Text: "Buy low, sell high. All your wealth needs to come from profit made through the bazaar. Trading and bazaar are allowed for this challenge. Note that you will need to provide your starting cash by trading it from another account to prevent abuse. Starting with 1000 gold is recommended.
Challenge: "Unupgraded Challenge"
Starting Bonuses: Standard starter
Restrictions: Cannot upgrade cards.
Text: "Unupped cards aren't just for PvP! You can never use upgrades."
edit: We can put custom off more or less indefinitely, too, if it adds a lot of coding trouble. At least 98% of the value of the feature is in the presets - custom is just there because I like custom options to be available for people to play with whenever possible. Custom-sized sealed decks are the biggest thing we get out of custom anyways, so it could also be simplified to just custom-sized sealed deck and leave the restrictions to preset challenges that are added through the code.