In this post I discuss a glint spending strategy for completing the current reward set in Splinterlands. I make use of spltools, which is a package for working with Splinterlands data (work in progress). As part of this post I have updated the package to include classes to calculate the results of the chests that we can purchase in the glint shop.
spltools update summary
- Added Enums for Edition and Tier. The in_set() function has been updated to use these for improved code readability.
- Added Reward chest classes
- Smaller modifications to comply with PEP-8
Glint spending strategy
*Code used to identify this strategy can be found in spltools: examples/optimal_glint_strategy.py
Lets start by defining a goal:
Completing the current set of regular foil reward cards.
To get a good strategy for this we need to consider how far we've come with our current collection. For example, my own collection progress has come this far:
Clearly, I'm lagging behind on the legendary cards and need to do something about that. So I need up the priority for purchases that include higher chances of legendary cards going forwards.
How do we do this. First, we gotta have the average result for each chest type:
Next we assign a glint value to each item. There is some individual evaluation here. For my situation, I still value merits quite a bit, gold foils not so much, potions are useless to me, and energy is basically worth 1000 glint, since that's what I get on average for a win, and we get the same amount added to the season end loot.
Now, to account for how far my collection has come, I do the following:
Use each rarity completion ratio to define an increased value factor: We should consider the relative progresses of the rarities, and also if the progress gets close to one, the priority of this rarity should be should be zero. The easiest way to achieve the latter is to make the priority proportional to (1-completion). I also want the new priority factors to sum to 1, so divide all the each of them by the sum over all of them, divided by 4.
Finally I'm ready to set the values of each item we can get in a chest:
With this, I can calculate the value of each chest. The rarity draws are simpler, and their values are simply given by a combination of the regular foil values and gold foil values in the image above. If we now also account for the increased cost for each batch, we can calculate a value/cost for each purchase option.
For my progress, this gives the following buying strategy:
Initial strategy / equal rarity progress
If the rarity progress is balanced (like it is at the beginning when we have no cards), this is the strategy:
Equal rarity progress, low glint income
If the rarity progress is as above, but we have lower glint per battle, then the strategy changes because chests are worth less glint. If we put zero value for energy (the most extreme case) then we get this strategy:
We now find that common and rare draws are better than the ultimate chests. Common draws remain better than the Ultimate chests until we get to 150 glint per battle.
Typical semi-balanced progression
I looked up a few collections from my guildmates, and this balance appears to be pretty typical (this is your's @arrrchmage)
completion = {"common": 0.65, "rare": 0.55, "epic": 0.35, "legendary": 0.28}
Reward Chest classes
The above calculations make use of some new classes for reward chests that I've added to spltools. The reward chest classes are defined in the spltools/rewards.py file. There is a base class to hold all the data for each chest, that is the card chances, card multipliers etc...
Futhermore it defines a method for toggling potions,
and a function for calculating the average reward result:
The base class is extended by the three classes MinorChest, MajorChest and UltimateChest. These subclasses simply set pass on the correct parameters to the base class Chest, and toggle potions on or off. The MinorChest class looks like this:
and the MajorChest and UltimateChest classes are similar.
Final words
Thanks for your attention. I this post about glint spending strategy was of interest, or that you find the spltools package useful.
spltools update posts:
spltools update: Checking which set a card belongs to
Initial spltools commit
If you have not yet joined Splinterlands please click the referral link below to get started.
Join Splinterlands
Best wishes
@Kalkulus
Cool update, got to try this one out 👍
very nice Kalk, I'm lagging in Legendaries as well, good job
Thanks for sharing! - @alokkumar121
@kalkulus, I paid out 0.829 HIVE and 0.163 HBD to reward 2 comments in this discussion thread.