Def/Res PvP decrease:
Here is my Python code and my data i used to calculate it:
res = 425
mag = 2621
M1 = 1
M2 = 3
data = [6588,7014,7014,7227,7227,7353,7353,7440,7440,7500,7500,7545,7545,7581,7581,7608,7608,7632] # Dmg numbers
# Replace these ^ to adapt to your test if needed
total_res = []
total_multiplier = []
data_prediction = []
data_prediction_2 = []
res_multiplier_prediction = []
Odie_prediction = []
for index, value in enumerate(data):
CurrentRound = index # if starting from turn 0. If starting from turn 1 replace with CurrentRound = index
calculated_resistance = mag*M1-(value/M2) # resistance if we backtrack the dmg and assume nekrosis has M1=1 and M2=3
total_res.append((value, int(calculated_resistance)))
total_multiplier.append(1.0/(res/calculated_resistance))
data_prediction.append((mag*M1 - res/(int(CurrentRound/2+2.5)*0.5))*M2)
data_prediction_2.append((mag * M1 - res / ((2+int(CurrentRound/2+0.5))/2)) * M2)
Odie_prediction.append((mag*M1 - (res/(1.0 + (0.5*CurrentRound))))*M2) # Formula mentioned by Big Yoshi
res_multiplier_prediction.append(2/(2+int(CurrentRound/2+0.5))) # value, which is multiplied with resistance on Nth turn. Note the 2/x pattern.
print(f"Actual data (dmg, res): {total_res}")
print(f"Actual res multiplier: {total_multiplier}")
print(f"My prediction based on my formula: {data_prediction}")
print(f"My prediction based on my formula 2: {data_prediction_2}")
print(f"Odie_prediction: {Odie_prediction}")
print(f"Res multiplier prediction: {res_multiplier_prediction}")
Output
Actual data (dmg, res): [(6588, 425), (7014, 283), (7014, 283), (7227, 212), (7227, 212), (7353, 170), (7353, 170), (7440, 141), (7440, 141), (7500, 121), (7500, 121), (7545, 106), (7545, 106), (7581, 94), (7581, 94), (7608, 85), (7608, 85), (7632, 77)]
Actual res multiplier: [1.0, 0.6658823529411765, 0.6658823529411765, 0.4988235294117647, 0.4988235294117647, 0.4, 0.4, 0.33176470588235296, 0.33176470588235296, 0.2847058823529412, 0.2847058823529412, 0.24941176470588236, 0.24941176470588236, 0.2211764705882353, 0.2211764705882353, 0.2, 0.2, 0.1811764705882353]
My prediction based on my formula: [6588.0, 7013.0, 7013.0, 7225.5, 7225.5, 7353.0, 7353.0, 7438.0, 7438.0, 7498.714285714285, 7498.714285714285, 7544.25, 7544.25, 7579.666666666667, 7579.666666666667, 7608.0, 7608.0, 7631.181818181818]
My prediction based on my formula 2: [6588.0, 7013.0, 7013.0, 7225.5, 7225.5, 7353.0, 7353.0, 7438.0, 7438.0, 7498.714285714285, 7498.714285714285, 7544.25, 7544.25, 7579.666666666667, 7579.666666666667, 7608.0, 7608.0, 7631.181818181818]
Odie_prediction: [6588.0, 7013.0, 7225.5, 7353.0, 7438.0, 7498.714285714285, 7544.25, 7579.666666666667, 7608.0, 7631.181818181818, 7650.5, 7666.846153846154, 7680.857142857143, 7693.0, 7703.625, 7713.0, 7721.333333333334, 7728.78947368421]
Res multiplier prediction: [1.0, 0.6666666666666666, 0.6666666666666666, 0.5, 0.5, 0.4, 0.4, 0.3333333333333333, 0.3333333333333333, 0.2857142857142857, 0.2857142857142857, 0.25, 0.25, 0.2222222222222222, 0.2222222222222222, 0.2, 0.2, 0.18181818181818182]
So, formula looks something like this: (mag*M1 - res/(int(CurrentRound/2+2.5)*0.5))*M2 with
- mag = Magic stat of attacker
- res = Resistance stat of damage receiver
- CurrentRound = Round counter starting from 0, increases by 1 when both players did their turn (similar to Chess)
- M1 = M1 multiplier of ability
- M2 = M2 multiplier of ability
- int() = transforming a number into an integer by cutting off decimals (int(1.825) = 1)