Here is some more testing of the old formula. weaponskill is not always 0 as I stated, another mistake on my part.
For the first results we are using the original formulas, however mob strength is 60 + level * 1.5.
damage *= (GetWeaponSkill(weapon) + 90.68) / (ad.Target.GetArmorAF(ad.ArmorHitLocation) + 20 * 4.67);
Console.WriteLine(Name + " damage2 = " + damage);
Level 20 mob fighting level 18 similacrum:
test mob damage1 = 29.549806949807
test mob weaponskill = 0
test mob armoraf = 174
test mob damage2 =
10.0208545033975
Amber Simulacrum damage1 = 26.0856833976834
Amber Simulacrum weaponskill = 0
Amber Simulacrum armoraf = 208
Amber Simulacrum damage2 =
7.84820759954191
For the level 20 test I do have a Cabalist on live and we can see how these numbers are too low by looking at the logs I recorded:
18,0,The clicking beetle hits your amber simulacrum for 32 damage.
17,0,Your amber simulacrum attacks the clicking beetle and hits for 18 (+2) damage!
18,0,The clicking beetle hits your amber simulacrum for 30 damage.
18,0,The clicking beetle hits your amber simulacrum for 23 damage.
18,0,The clicking beetle hits your amber simulacrum for 32 damage.
17,0,Your amber simulacrum attacks the clicking beetle and hits for 27 (+4) damage!
18,0,The clicking beetle hits your amber simulacrum for 23 damage.
17,0,Your amber simulacrum attacks the clicking beetle and hits for 18 (+2) damage!
18,0,The clicking beetle hits your amber simulacrum for 23 damage.
17,0,Your amber simulacrum attacks the clicking beetle and hits for 25 (+3) damage!
18,0,The clicking beetle hits your amber simulacrum for 25 damage.
17,0,Your amber simulacrum attacks the clicking beetle and hits for 27 (+4) damage!
18,0,The clicking beetle hits your amber simulacrum for 31 damage.
17,0,Your amber simulacrum attacks the clicking beetle and hits for 23 (+3) damage!
18,0,The clicking beetle hits your amber simulacrum for 33 damage.
18,0,The clicking beetle hits your amber simulacrum for 31 damage.
18,0,The clicking beetle hits your amber simulacrum for 26 damage.
18,0,The clicking beetle hits your amber simulacrum for 31 damage.
17,0,Your amber simulacrum attacks the clicking beetle and hits for 24 (+3) damage!
18,0,The clicking beetle hits your amber simulacrum for 27 damage.
17,0,Your amber simulacrum attacks the clicking beetle and hits for 24 (+3) damage!
18,0,The clicking beetle hits your amber simulacrum for 26 damage.
17,0,Your amber simulacrum attacks the clicking beetle and hits for 24 (+3) damage!
18,0,The clicking beetle hits your amber simulacrum for 29 damage.
17,0,Your amber simulacrum attacks the clicking beetle and hits for 25 (+3) damage!
18,0,The clicking beetle hits your amber simulacrum for 25 damage.
18,0,The clicking beetle hits your amber simulacrum for 28 damage.
17,0,Your amber simulacrum attacks the clicking beetle and hits for 25 (+3) damage!
Clearly the damage for level 20 is at least 50% too low. Also notice that the base damage, before adjusting for weaponskill, is not that far off.
int lowerboundary = (WeaponSpecLevel(weapon) - 1) * 50 / (ad.Target.EffectiveLevel + 1) + 75;
lowerboundary = Math.Max(lowerboundary, 75);
lowerboundary = Math.Min(lowerboundary, 125);
As a matter of fact, if you do not adjust that number except for the random 75% to 125% damage above it comes out just about right.
Since the mobs fighting are different levels we also need a level penalty applied to the simmy.
My solution, and the one you think will not work right for higher levels, is to use the player weaponskill equation.
double wbase = 400; // weaponskill, this controls the overall damage
double preBuff = ((Level * wbase * 0.02 * (1 + (GetWeaponStat(weapon) - 50) * 0.005)) * Effectiveness);
return Math.Max(0, preBuff * GetModified(eProperty.WeaponSkill) * 0.01);
This is basically a copy of code from gameplayer. My damage modifier then becomes simply:
damage *= GetWeaponSkill(weapon) / ad.Target.GetArmorAF(ad.ArmorHitLocation);
First off here is a damage log for a level 50 non RR5 character I have, being beat on by an old hag. I'm only wearing a few pieces of armor:
18,0,Current area is adjusted for one level 49 player.
18,0,Current area has a 50% instance bonus.
30,0,You target [the accursed hag]
30,0,You examine the accursed hag. It is aggressive towards you!
29,0,The accursed hag hits your arm for 101 damage!
29,0,The accursed hag hits your arm for 129 damage!
29,0,The accursed hag hits your torso for 128 damage!
29,0,The accursed hag hits your hand for 330 damage!
29,0,The accursed hag hits your leg for 330 damage!
29,0,The accursed hag hits your head for 92 damage!
29,0,The accursed hag attacks you and misses!
29,0,The accursed hag hits your head for 132 damage!
21,0,Tolla was just killed by an accursed hag!
Level 50 mob beating on me in DOL wearing similar armor.
18,The test mob hits your torso for 61 (-6) damage!
18,The test mob hits your torso for 52 (-5) damage!
18,The test mob hits your arm for 47 (-4) damage!
30,The test mob attacks you and misses!
30,The test mob attacks you and misses!
30,The test mob attacks you and misses!
30,The test mob attacks you and misses!
30,The test mob attacks you and misses!
18,The test mob hits your leg for 306 (-39) damage!
18,The test mob hits your torso for 43 (-4) damage!
22,Amerc was just killed by a test mob.
30,You examine the test mob. It is aggressive towards you.
18,The test mob hits your leg for 306 (-52) damage!
18,The test mob hits your leg for 306 (-37) damage!
30,The test mob attacks you and misses!
30,The test mob attacks you and misses!
18,The test mob hits your arm for 50 (-4) damage!
18,The test mob hits your torso for 45 (-4) damage!
30,The test mob attacks you and misses!
30,The test mob attacks you and misses!
18,The test mob hits your leg for 306 (-54) damage!
18,The test mob hits your leg for 306 (-35) damage!
22,Amerc was just killed by a test mob.
Where the (-##) resists are coming from is a question, but if we add those numbers back in we see that cap damage is right on, but damage hits to armor is way way too low. Again, the damage looks to be around 50% of what it should be.
DOL, replacing weaponskill code with my new code.
18,The test mob hits your leg for 306 (-4571) damage!
30,The test mob attacks you and misses!
18,The test mob hits your torso for 83 (-8) damage!
18,The test mob hits your arm for 81 (-8) damage!
18,The test mob hits your leg for 306 (-4169) damage!
30,The test mob attacks you and misses!
18,The test mob hits your torso for 75 (-7) damage!
18,The test mob hits your torso for 84 (-8) damage!
18,The test mob hits your hand for 306 (-4018) damage!
22,Amerc was just killed by a test mob.
30,The test mob attacks you and misses!
18,The test mob hits your torso for 84 (-8) damage!
18,The test mob hits your arm for 92 (-9) damage!
18,The test mob hits your torso for 72 (-7) damage!
18,The test mob hits your arm for 110 (-10) damage!
30,The test mob attacks you and misses!
18,The test mob hits your arm for 112 (-11) damage!
18,The test mob hits your torso for 75 (-7) damage!
18,The test mob hits your arm for 131 (-12) damage!
18,The test mob hits your leg for 306 (-5023) damage!
18,The test mob hits your leg for 306 (-5927) damage!
22,Amerc was just killed by a test mob.
(-5023)????? My head hurts. Anyway the damage is closer to correct, but obviously something else is going on here that I need to understand.
test mob damage1 = 97.9173745173745
test mob weaponskill = 570
Amerc armoraf = 345.58
test mob damage2 = 161.50501613202
test mob damage3 = 131.836367367177
test mob damage1 = 97.9173745173745
test mob weaponskill = 570
Amerc armoraf = 0
test mob damage2 = 55812.9034749035
test mob damage3 = 50789.9034749035
That last non-armor hit with the huge damage2 number is probably where the odd (#) is coming from. I'll continue this tomorrow if/when I have time.