Diep Damage & Bullet Factors

Introduction

Today I'm gonna introduce you to the concepts of Bulletfactors Bf and Damagefactors Df. As you know some bullets appear to be stronger or just more powerful then others when they have equal stats. To show how much more powerful a bullet is in comparison, we give each of them a specific Bf that represents its power. 1 is equal to the power of a basic bullet.

The bulletfactors for all bullets/traps/drones:

An example : one twin bullet has only 58.5% of the power of a basic tank ones, so it'll deal only 58.5% of its damage.

credits to lyw318 for providing most of the Bf's https://www.reddit.com/r/Diepio/comments/51fplu/durability_formula/

Damagefactors Df :

Every bullet in the game deals a specific amount of damage every contact it's making. Interestingly the damage done per contact or loop doesn't depend on the body damage a tank has. It doesn't matter if a tank has 0 BD points or 7 BD points. The damage per contact stays the same except when the DPL (damage per loop/contact) is higher then Health loss by the tank (More to that in a later post). Some bullets do more some do less damage at each loop. The Damagefactor gives you an comparison between the bullets, but this time it's not the power between bullets that's been compared it's the amount of damage it deals per loop. The higher the Df the more damage it deals each loop.

The Damagefactors for all tanks :

To give you an idea of how much DPL each bullet has : DPL = 4 * Df * DS DS is (0.7+0.3 * bullet damage stat)

An example : with 0 bullet damage stats the DPL of a basic bullet is 7HP. So it will make 7HP each contact with an object. With 1 bullet damage stat than 10HP and so on.

Sidenote : I just call contacts loops, cause that's what some people say in programming. But it's really the same.

I hope you understood the concept behind those 2 factors. In the next post I'll explain how this equation DPL = 4 * Df * DS came to be and how we can use the fact that the DPL can be equal to the total damage done to calculate the Bullet HP. If you have questions to the topic above please ask me.

Also if you're intersted in more of this stuff here : http://spade-squad.com/physics.html

Thanks for reading. Have fun.

How to find out the Bullet HP

The derivation of the raw bullet health equation BP.

Explanation of the symbols:

All bullets deal a proportional amount of damage per loop to their remaining health. (That only applies if the remaining bullet health is lower then the DPL of the enemy bullet/tank)

an example :

If a bullet has 8HP left and the opponent deals 6HP damage per loop the bullet will deal its entire DPL to the opponent on that loop. On the next loop the bullet only has 2HP left but the DPL of the opponent is still 6HP. So the bullet will survive only 1/3 more loops (even if that's a bit simple said. more on that later). Because of this its DPL will also only be 1/3 of what it was before, cause it just has not enough health and time to deal the full damage.

With that in mind we now have an idea how the bullet health looks like:

BP = L * DPL''

Note: The DPL is now the DPL of the opponent

An bullet has as much health as the damage is done to it over all loops (this is true for every object).

The DPL of an tank is simple. It deals 20HP damage with 0 bd and 24HP with 1 bd. So the formula is just:

DPL = 20 * BS

updated BP-equation :

BP = L * 20 * BS

Now we have to find out an expression for L.

The number of loops is just the health loss over the DPL (DPL'') an opponent deals.

an example :

If a tank losses an total of 10HP and the bullets deal 5HP per loop, then it took 10/5 = 2 loops to make the 10HP damage.

L = MH_L / DPL

from my previous post (https://www.reddit.com/r/Diepio/comments/7313m8/bulletfactors_and_damagefactors/) we know that the DPL of bullets is DPL = 4 * Df * DS. The health loss is MH_L = 4 * D_b / BS (If you wanna know how they came to be then just ask down below. I don't know if that is even interesting for you. So please feel free to give me feedback).

Let's find the expression:

L = MH_L / DPL = (4 * D_b / BS) / (4 * Df * DS)

rearrange the term: L = 4 * D_b / (BS * 4 * Df * DS)

The D_b is just Bf * DS * PP. You can look it up in lyw318 durability formula.

We have now L = 4 * Bf * DS * PP / (BS * 4 * Df * DS)

DS and 4 are both in the denominator and in the counter. We can therefore just cancel them out.

L = Bf * PP / (BS * Df)

With L plugged in the BP-equation we get:

BP = Bf * PP / (BS * Df) * 20 * BS

The BS cancels out and we got our expression.

BP= 20 * Bf / Df * PP = 20 * Pf * PP

an example:

a basic bullet has Bf = 1 and Df = 2.5 and of course 0bp if you wanna calculate the base health (BP°)

BP° = 20 * 1 / 2.5 * 1HP = 8HP

The PP = 1 + 0.75 * bp is the reason you have to multiply the base HP with that term to get the HP for every bullet penetration point.

Now you see where the base HP values came from and how to derive the formula. Sorry that it was so math intense but I hope I could give you an idea how you can actually build a mathematical base for the game. Depending on the comments I can derive for the next time the DPL formula for bullets and the MH_L formula for tanks or explain why besides the fact that an Factory drone has twice the HP of an Hybrid's bullet the bullet is still 2,1428... times more powerful then the drone.

If you wanna know more visit this page http://spade-squad.com/physics.html

Thanks for reading.

Origins of Damagefactor

This is an extra post to the damagefactor Df, cause it just unsatisfying to not show you where the damagefactor originated from.

DS = 0.7 + 0.3 * dm PP = 1 + 0.75 * bp

Those are all the DPL for every bullet:

As you may see it's just an mess to write the DPL in that way. An better way would be to just simplify it down to a general formula for every tank, so we dont have deal with this cluster. And here is where the Df comes into play.

I wanted to find out if there is an property for the case that the damage per loop is exactly as high as the total damage done. So the collision will only last exactly one "real" loop and one "technical" loop.

DPL (Bullet) = MH_L

If we now plug our formulas in we get:

4 * D_b / BS = k * DM with D_b = Bf * DS * PP (you probably still now this)

k just stands for everything that comes before the DS in the DPL equation.

for Triplet k = 100/7 * Bf and so on...

so now we can put in the formula for D_b :

4 * Bf * DS * PP / BS = k * DS

cancel DS and bring BS to the other side :

4 * Bf * PP = k * BS

divide both sides by 4 and we're done :

Bf * PP = k/4 * BS

The property :

If the health loss of tank is exactly the DPL of a bullet then the product of bulletfactor and penetration potential is equal to one quarter of the what comes before the Ds in the DPL formula times the body strength.

The damagefactor is now definded (by me) as Df = k/4

the final equation :

Bf * PP = Df * BS

Because of the reason that the Df is only one quarter of k we have to multiply by 4 to get back to the DPL

This means the general formula for every bullet's DPL is:

DPL = 4 * Df * DS

This formula makes it a lot easier to work with damage per loops cause we got one instead of a couple equations (as seen in previous posts).

The new formulated property of MH_L = DPL (Bullet):

If the health loss of a tank is exactly the DPL of a bullet then the product of bulletfactor and penetration potential is equal to the damagefactor times the body strength of the tank.

Thanks for reading this extra post to the damagefactor.