(Feature Request) Limited Time Offer Shop Type
FuniverseMinnesota opened this issue ยท 2 comments
To start you could put trades into a shop like any other type but a few additional options would be presented such as how many of your predetermined trades would appear at one time and how long the duration between choosing new trades would take. For example I could have 4 trades set in a shop, I could then set it to display only 2 trades at one time and every 1 hour it would randomly select any 2 combinations of those 4 trades.
This sounds similar to the usecase mentioned in #651, with the exception that this other ticket additionally mentions a limit to how often the trade can be used (maybe even as an alternative to switching the trades periodically) (maybe similar to/combined with #403).
Regarding your suggestion, the suggested editor options so far are:
- Number of randomly selected trades.
- Period time (maybe in minutes) until the selection is updated.
Other open questions / variations I can think of (I am just brainstorming here):
- Would this be limited to admin shops? Players might probably like to be able to run these kinds of 'events' for their own shops as well.
- Instead of having this as a new type of shop, it could probably also be an option to be able to enable this for any of the currently existing shops via their editors (especially if this would also be usable for player shops).
- Maybe one wants to be able to select different weights for each trade, so that some trades are rarer than others. However, the current editor does not support any per-trade settings yet. This could be a future addition.
- Are there usecases for having different timers per trade? Eg. some trades being available longer than others? However, the per-trade aspect applies to this as well. Also, it might be inconvenient having to configure timers per trade.
- Regarding the limited stock usecase mentioned above: This could either be used independently together with the 'admin shop with limited stock' feature (once that is added), i.e. random trades are selected but they might have limited stock; or these features could be combined more closely, i.e. a new trade could be selected randomly once the previous one becomes out of stock. Maybe it also makes sense to have this behavior configurable. But this aspect can probably be postponed to future additions.
- I can see the usecase for wanting to be able to influence the currently active trades. This could mean to somehow be able to manually select (activate, deactivate) the currently active trades in the editor, or to at least randomly select new trades by triggering a manually reset. The latter would be easier to add.
- Regarding manually activating or deactivating trades: Being able to temporarily disable a trade without having to remove it might be a possibly wanted feature regardless of this feature, i.e. even without the timed resets.
- However, if trades can at some point be manually activated and deactivated, one would probably also want to differentiate between completely deactivated trades (i.e. those that can also not be randomly selected by this feature), vs. trades that are only currently deactivated but are still free to be selected and thereby activated by this feature.
- The editor should also be able to display the remaining time until the next reset, maybe via the lore of the button that is used to adjust the time, or the button that triggers a manual reset.
- API-wise it probably also makes sense to add a new event when a shopkeeper resets its active trades, maybe with options to be able to intercept and influence the outcome.
- Also API-wise: Getting the currently active trades, activating/deactivating trades, changing the remaining timer, triggering an immediate reset, etc.
- Optional notifications, globally on the server and/or for the owner of the shop, when the selected trades change. But this can probably be a later optional addition as well.
Overall I don't see any major issue with this suggestion yet. Most of the more complex question can probably be postponed, since they depend on other features that do not exist yet.