A simulator for making pulls on the School Idol Festival mobile game.
User Stories
Feature #1: The basic pull
The most basic command should be &gacha. The expected behavior is that Nicobot will randomly pick a card from the School Idol Festival card list and return it. Every card in the entire game should approximately the same probability.
Nicobot will respond with a URL to the default card_image of the card to slack. Slack is expected to automatically expand the image.
Feature enhancement to gacha that behaves more consistently with the way true PULLs work in the game.
The command is &gacha mu and &gacha aqours. The expectation is that Nicobot will randomly select a card from the card list following these criteria:
No (N) cards will ever be returned.
There is an 80% chance to return a (R) card
There is a 15% chance to return a (SR) card
There is a 4% chance to return a (SSR) card
There is a 1% chance to return a (UR) card
Only the cards belonging to the group specified in the option will be returned; i.e. specifying &gacha mu will only return MU cards, and &gacha aqours only returns AQOURS cards
For each card rarity, every card has an equal chance to be returned
Optimization #1: API Call optimization via caching
In a default implementation, we will be hitting the API repeatedly for every single &gacha call. This optimization task is an open-ended task to design a caching system that will allow us to avoid making repeated calls to SIF API, in the case they are slow or suffer downtime.
Product Request: SIF Gacha Simulator
Summary
A simulator for making pulls on the School Idol Festival mobile game.
User Stories
Feature #1: The basic pull
The most basic command should be
&gacha
. The expected behavior is that Nicobot will randomly pick a card from the School Idol Festival card list and return it. Every card in the entire game should approximately the same probability.Nicobot will respond with a URL to the default card_image of the card to slack. Slack is expected to automatically expand the image.
To fetch image metadata, I recommend using the School Idol Festival API.
Feature #2: The Rare Pull
Feature enhancement to
gacha
that behaves more consistently with the way true PULLs work in the game.The command is
&gacha mu
and&gacha aqours
. The expectation is that Nicobot will randomly select a card from the card list following these criteria:&gacha mu
will only return MU cards, and&gacha aqours
only returns AQOURS cardsOptimization #1: API Call optimization via caching
In a default implementation, we will be hitting the API repeatedly for every single
&gacha
call. This optimization task is an open-ended task to design a caching system that will allow us to avoid making repeated calls to SIF API, in the case they are slow or suffer downtime.