What you were expecting to happen, and what actually happened:
Since Skeleton Key has a boost ratio 3:1, when I have 300 gold, I would expect a boost of +100. Instead, the game gives a boost of +102. I’m not sure where the extra 2 is coming from.
The actual damage dealt when I case includes the +102 boost, not the expected +100 boost.
How often does this happen? When did it begin happening?
I only noticed it because someone else mentioned it to me today. I’ve been able to replicate it every time in explore level 12. I didn’t check other game modes.
Steps to make it happen again
Here is the team I used [6498,6498,1214,6629,3037,3,1,1,1,2,1,2,14017]
Start Wild Plain explore level 12 (I’m guessing others would work but this is what I did).
Max out your gold to 300.
Click on Skeleton Key and you’ll see the higher than expected boost.
PS:
To everyone upset about the Skeleton Key nerf, I’m so sorry I’m pointing out it wasn’t nerfed properly. Forgive me.
Edit: I renamed the post title from “Skeleton Key boost…” to “Skill boost…” since Egg Thief also has the same problem.
Stat caps are 1,000, but it is possible to have 1005 as a stat cap. Basically how that works is if you get a plus 8 boost at 997, it will actually show 1005, rather than 1,000. If you got 7, 1004.
What might be happening is when you get your 300 gold cap, say you are at 293 gold, get 10 from a gold match (your gold cap allows you to earn more from a 4/5 match etc, or say 15 from light fingers), it will cap off at 300, but the gold collected would be over 300.
I wonder therefore that the gold cap might actually be 305 or 306, a bit like the stats cap, you only get 300 gold bonus when collecting and the game shuts off and includes the minimal amount that you went over for damage. You can’t raise the 300/300 but if you go over, it will fix it at 300, but give you up to the hard cap for damage.
A way of testing would be to take your gold over 300 from a 4 match perhaps, see if you ever get 101, i.e. 304 total or less.
Don’t think it’s the above, some rounding up is occurring in relation to gold accumulation as per @AMT
Boost matched from 0:148, but when gold reached 168/300, the boost is not divisable by 3. 168/300, boost shown +57, should be +56. I think after 50% of 300, there’s a slight boost, gold matched to at least 148, I had 2 goes and didn’t land on 150 exact, but think that’s it.
So slooow, I forgot Light Fingers
FWIW gold farming is much easier with fast, competent E12 teams than the old key teams.
So what does the game do? The boost is calculated by dividing 100 / Amount, in our case 100 / 34 = 2.9411764.... The total amount (300 gold) is now divided by this, and yields 300 / 2.94... = 102
Hope that sheds some light. In order to fix this issue, I see two possibilities:
A) What my bot does: cutting off the slack and dividing by the next nearest Integer (in that case 3 instead of 2.94117647)
B) provide more decimal places in the spell Id 7953, e.g. `“Amount”: 33.333333333334, which would then yield a number way closer to the desired result.
Third possibility which is a variant of your B). I’m guessing they choose 34 as they dictated that Amount must be an integer. If it could support decimals, instead of your 33.333333333334, just make it 0.333333333334. Multiply the total amount (300 gold) by that.
Only the devs know how this is done. I just enjoy trying to figure out what people tried to do and how they did it. /conspiracy Watch @Saltypatra come here now and say this is way off. This was decided thousands of years ago by a magical alien. That’d be cool if true though. I’d accept that response.
To be more specific on what happens here:
If Amount > 100 then the spell boost is [xAmount/100], e.g. Amount = 200 leads to [x2].
If Amount <= 100 then the spell boost is [100/Amount:1], e.g. Amount = 34 leads to [3:1]
So they coded two different calculations into one number, hence the “overcomplication”.
We already gave them a punch in the guts with this bug report, I don’t want to harass them because of their tech debt any further.
Game development never has enough budget, and never has enough time. What you see here is the result of that combination. Please don’t (only) blame the devs for that situation.
There are also terms of speed. From what i recall: Integer only operations are faster than: converting integer into float, do float operations and convert it back do integer. That’s ofc assuming all number in game are stored as integers.
It doesn’t matter when you have a single program running, but it matters if you have milions of programs running concurrently.
So you say they chose to develop the game in unity instead of rewriting it n times for different platforms in their native language and at the end they go for optimizations of calculations. Sure.
They can go for Unity to have game easily portable onto many devices at once (same as people loved developing things in java because most JVM work very similiar) and they can also limit number of float operations for things to scale…