Before running:
- put all
.png
in thedata\flutter_assets\assets\cards
folder (at least one card; no whitespace characters in the names); - put the four .mp3 files in the
data\flutter_assets\assets
folder (default.mp3
,positive.mp3
,negative.mp3
,funny.mp3
); - write the RGB color for the background in the
data\flutter_assets\assets\colorRGB.txt
file; - start the program.
IMPORTANT: the program will not run if there isn't at least one card and all the needed files.
Setup:
- long press on a card to add/remove (enable/disable) it from the pool;
- single press on a card to increase its rarity (1 to 6 and back);
- set the number of times a card can be drawn, set as
-1
if unlimited; - set the marker of each card as A, B or All (by clicking the button);
- set the sound to be played when drawn (by clicking the button);
Draw steps:
- randomly select a rarity;
- randomly select a card of such rarity;
- play the related
.mp3
sound; - 1.5s animation "from the right" that makes the drawn card appear;
- the card stays for 45 seconds;
- hide the card;
- add the drawn card to the log file;
- reduce by one the number of uses left and disable the card if it reaches
0
.
If there isn't any available card of the randomly selected rarity, it first checks the lower rarities and then the higher rarities.
e.g.: if Rarity 4 is selected and it has no cards, the check order is 3-2-1-5-6. If there isn't any card available, it returns the first card whether is active/drawable or not.
If no card is found (so there isn't any card avaliable), it returns the card at index 0.
The pool can be made by A cards, B cards or All.
Functions:
- DRAW: draws a card, shows it and, after 45 seconds, hides it
- ALL/A/B: set the marker from which draw the random card
- LAST: pop the last card from the stack (it remains until CLEAR)
- CLEAR: hide the current big card
- INDEX: set the index of a specific card
- SHOW: show the card of the specified index that ovverides the last card (it remains until CLEAR)
Folders structure:
TODO
JSON structure:
{
"cards": [
{
"path": "path_to_card_image.png",
"rarity": 1, // from 1 to 5, 0 if the card is new
"active": true, // if active in the card pool
"uses": 1, // uses left
"marker": 1 // 1 = A, 2 = B
},
.
.
.
]
}