* Implement FromToken method for Skew configuration
Added a method to parse a serialized configuration token for Skew profiles. Tokens can be generated and viewed using the updated cecil helper tool.
* Add Difficulty property to KasinoShop profile
Add Difficulty property to KasinoShop profile
* Add HOUSE_EDGE variable and custom difficulties
Add HOUSE_EDGE variable and custom difficulties
* Implement ShopSetDifficultyCommand for difficulty settings
Added ShopSetDifficultyCommand to manage player difficulty settings in casino games, including validation for input parameters.
* adds return to default difficulty setting
adds return to default difficulty setting
Future plan is to basically disable automatic reconnection in the WS library and use the fast fail functionality instead since it just causes more problems than it's worth.
* Add Cecil for mechanics
Used to predetermine the outcome of games according to a probability function, which is stored as a skew. Each game made using cecil is intended to have its own skew (or maybe multiple skews for different difficulties)
Will eventually be used for planes 2
* Add CecilCommand for gambling functionality
Skip all the fancy casino visuals and let Cecil take the wheel
Customizeable difficulty
!cecil <bet> <optional difficulty, default 1> <optional max win>
https://i.ddos.lgbt/raw/CecilHelper.html
* Validate max win value in CecilCommand
Added validation to ensure max win is greater than 1.
* Adjust slot symbol probabilities and random range
9208000 | Payout: 0 | RTP: 97.84% | Feach Chance: 0.78% | Hit Rate: 34.03% | Win Rate: 15.14% | Biggest Win: 14100.0x | Avg Win: 6.01x | Median Hit: 0.6x
got some complaint about slots so figured I'd change it up a bit
found 120% rtp in test, idk if i fucked it up last time or this time but i nerfed feature and wild chance for now, planning a better update later
new rtp settings
RTP: 98.37% | Feach Chance: 0.14% | Hit Rate: 45.59% | Win Rate: 17.89% | Biggest Win: 38100.0x | Avg Win: 4.96x | Median Hit: 0.5x
from 32 mil tests
- Uses a List<string> as the underlying type which EF Core will serialize as JSON. Since SQLite doesn't have any native JSON features, it gets stored as TEXT
- Got rid of the alternate pathway used for selecting an image so it always has a degree of randomness assuming enough images were returned
- Simplified some of the existing Regex and removed the non capturing groups as they're cancerous
- Added/removed images will be spoilered.
- Added a metadata property for images. This is a JSON object that EF Core will serialize/deserialize for you and presently contains the user ID of whoever added the image as well as when it was added. Can be easily extended with no migration needed. Will be null for existing images.
- Added a migration process for moving Tags to TagList for fishtank