A strategy for spending glint based on current collection progress, and updates to spltools.

in Splinterlandslast month

Image created with Bing Image Generator

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

separator.png

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:

My collection progress, calculated with: https://splintercards.com/tool-reward-soulbound.html

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:


image.png image.png
image.png

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.


image.png

Finally I'm ready to set the values of each item we can get in a chest:

I do not think I will be able to complete my gold foils, so for the most part they are worth their glint burn value.

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:


image.png

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:


image.png

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:


image.png

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}


image.png

separator.png

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...


image.png

Futhermore it defines a method for toggling potions,

image.png

and a function for calculating the average reward result:

The function is longer than the screenshot shows

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:


image.png

and the MajorChest and UltimateChest classes are similar.
separator.png

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

separator.png

Sort:  

Cool update, got to try this one out 👍

very nice Kalk, I'm lagging in Legendaries as well, good job

This post has been supported by @Splinterboost with a 12% upvote! Delagate HP to Splinterboost to Earn Daily HIVE rewards for supporting the @Splinterlands community!

Delegate HP | Join Discord

Thanks for sharing! - @alokkumar121

@kalkulus, I paid out 0.829 HIVE and 0.163 HBD to reward 2 comments in this discussion thread.