Short introduction; For almost one year I have been hardly working with decoding and coding the simulator algorithm, both for archer and non archer(classic) worlds (check my signature for more info).
Though, when I was working with the rams vs wall formulas I ended stuck, even with what seemed as a great thread by Cheesasaurus.
So, for all other people, being interested in getting the most out of your nukes(or defenses), or just knowing how some of the game mechanics works, here goes the true formulas:
Rams - A clooser look on how they work
Bonus WallTraining time (in seconds) = 3200/[world speed] * 1.06^(-[workshop level])
You might know that rams lower the wall, but did you know that they also negate the bonus your wall give to your troops while fighting?
At the beginning of the battle if your have level 20 wall, it will double the defense of your troops.(Giving a 2.07(207%) bonus)
This bonus can be calculated with following formula(the enemy having 0 rams for the moment):
Note: Why 1.037? I have no idea :Pbonus = 1.037^[Wall]
But this bonus can be negligated if the attacker have rams.
Actually what happens is that the [Wall] level will be "downgraded", and out of this level, the bonus, as in the formula above, will be calculated. But the level to which the wall is downgraded is not the downgraded level at the end of the simulation. We will call this level(to which the wall is downgraded) the bonus_wall level:
Note: Why 1.09 and 8? No idea neither :Pmax = [Attacking_rams] * [Attacking points of 1 ram at level 1] * [Attackers_Religion]/(8 * 1.09^[Wall])
Note for Religion: If the troops have beliefe, the religion is 1, if not it is 0.5. If world doesn't support church, religion is 1.
Note for attacking points of ram: Can either be 2(without ram paladin item) or 4(with ram paladin item)
So now we can write the Formula 1 yielding for Rams attacking too:bonus_wall = [Wall]-Round[max])
Example:bonus = 1.037^[bonus_wall]
Now there is an important remark to do. The bonus_wall can not be smaller than the half of the wall level(or the forth in case of ram item). So;Attacker: 1000 axes, 100 Rams || Defender: 500 spears, level 15 Wall
Both with beliefe.
max = 100 * 2 * 1/(8 * 1,09^15) = 6.863451033
bonus_wall = 15-7 = 8
bonus = 1.037^8 = 1.33730372
and;min = Round(1/2(or 1/4) * [wall])
Example:If bonus_wall < min then bonus_wall = min)
Wall downgradeAttacker: 1000 axes, 300 Rams, 1 Paladin|| Defender: 500 spears, level 19 Wall
Both with beliefe. Paladin with ram item.
max = 300 * 4 * 1/(8 * 1,09^19) = 29.17345048
bonus_wall = 19-29 = -10
min = Round(1/4*19) = 5
bonus_wall < min , so --> bonus_wall = 5
bonus = 1.037^5 = 1.19920597
Now, how many levels your wall is downgraded to in the end of the battle depends if the defender win or looses:
If Attacker wins:
Where Ratio = attacking_units dead/ attacking_units total for archer worlds and Ratio = (deffense points/ attack points)^1.5 for non archer worlds.downgraded_level = [wall] - Round(max * (2 - Ratio))
If Defender wins:
Where Ratio = defending_units dead/ defending_units total for archer worlds and Ratio = (attack points/ defense points)^1.5 for non archer worlds.downgraded_level = [wall] - Round(max * Ratio)
Now, how to find out the minimum of rams to use, and why the number 213 rams is floting around will soon be explained too, when I continue writing the guide.
As for now, I hope it was interesting;