View Single Post
  #4  
Old 10-20-2025, 02:16 AM
DeathsSilkyMist DeathsSilkyMist is offline
Planar Protector

DeathsSilkyMist's Avatar

Join Date: Jan 2014
Posts: 8,247
Default

Quote:
Originally Posted by bcbrown [You must be logged in to view images. Log in or Register.]
I'm confused and not sure what you think the hardcap and softcap values are that apply to a 60 druid. Could you lay out your theory in more detail?
Perhaps I should just show the formula in the EQEMU code. That will be more concise. This formula would work the same for all classes for the most part. The two class specific changes are which softcap to use, and which diminishing returns to use. I'll also be marking which pieces were confirmed by Haynar. I will be adjusting some of the variable names and condensing a few things to make it easier to read:

Quote:
var TotalEffectiveAC = GetTotalWornAC(); // This does NOT include spell AC.

TotalEffectiveAC = ((TotalEffectiveAC * 4) / 3); // Confirmed by Haynar. This inflates your worn AC value.

if(PlayerLevel < 50 && TotalEffectiveAC > (PlayerLevel * 6 + 25))
{
TotalEffectiveAC = (PlayerLevel * 6 + 25); // Confirmed by Haynar.
}

TotalEffectiveAC += DefenseSkill / 3;

TotalEffectiveAC += SpellAC / 4;

TotalEffectiveAC += AGI / 20;

var ACSoftcap = GetACSoftcap(); // Confirmed by Haynar.

ACSoftcap += GetShieldAC(); // Confirmed by Hanar. Will add 0 to the softcap unless you have a shield equipped in secondary slot.

if( TotalEffectiveAC > ACSoftcap)
{
TotalEffectiveAC = ACSoftcap + ((TotalEffectiveAC - ACSoftcap) * GetDiminishingReturns()); // Confirmed by Haynar.
}

return TotalEffectiveAC;
Let's use my variables for this formula so you can see how it works. First I will do the shield parse. I am skipping the level * 6 + 25 portion, as I am level 60:

Quote:
var TotalEffectiveAC = 363;

TotalEffectiveAC = ((363 worn AC * 4) / 3) = 484;

TotalEffectiveAC += (200 Defense Skill / 3) = 550;

TotalEffectiveAC += (0 Spell AC / 4) = 550;

TotalEffectiveAC += (80 AGI / 20) = 554;

Var ACSoftcap = 200; // Assuming 200 Softcap for priests.

ACSoftcap += 23 Lodi Shield AC = 223;

if (554 TotalEffectiveAC > 223 ACSoftcap)
{
TotalEffectiveAC = 223 + ((554 - 223) * 0.23 Diminishing Returns) = 299;
}

Return 299 AC;
Now we will go through the formula again without the shield:

Quote:
var TotalEffectiveAC = 363;

TotalEffectiveAC = ((363 worn AC * 4) / 3) = 484;

TotalEffectiveAC += (200 Defense Skill / 3) = 550;

TotalEffectiveAC += (0 Spell AC / 4) = 550;

TotalEffectiveAC += (80 AGI / 20) = 554;

Var ACSoftcap = 200; // Assuming 200 Softcap for priests.

ACSoftcap += 0 Shield AC = 200;

if (554 TotalEffectiveAC > 200 ACSoftcap)
{
TotalEffectiveAC = 200 + ((554 - 200) * 0.23 Diminishing Returns) = 281;
}

Return 281 AC;
That is the expected result, assuming all of the EQEMU code is 1 to 1 on P99. You should see why my Shaman is getting better damage mitigation with a shield. The increase in the softcap from the shield provides me with 18 more AC.

My existing data shows that the shield softcap increase is being applied.

There are a few things that have not been confirmed by Haynar though to my knowledge.

1a. Does the Softcap also get inflated to match the inflated AC when doing the ((Worn AC * 4) /3) Step? If not, a player with 150 worn AC would hit a 200 AC softcap.

1b. Were the softcap values themselves increased to compensate for the inflated AC? For example, the Priest softcap may have been 200 originally, but got increased to 300 to compensate.

2. How does Spell AC get applied? If the EQEMU is correct, spell AC gets divided by 4 and applied after the Worn AC inflation. This makes it's effects fairly small.

3. Are the Defense Skill and AGI portions in P99?

4. Are the order of operations different at all in P99 vs. EQEMU?

One interesting thing about Spell AC on P99 is it may be added to the UI differently. For example, Shroud of the Spirits supposedly gives 28 AC. But the UI shows that the increase in AC is less than the equivalent of 28 worn AC. So either the UI is doing something different for spells, or the wiki value of 28 AC is wrong.

363 worn AC reads as 1118 AC on my UI. Shroud of the Spirits adds 27 AC to the UI, putting the number at 1145. If I remove 28 worn AC while my UI shows 1145, my UI number is reduced to 1100. Putting on a 2 AC item increases my AC by 3 on the UI. Casting Inner Fire, which supposedly increases my AC by 3, adds 3 to the UI. It feels like spell AC is added directly to the UI, while worn AC is multiplied by something like 1.54 on the UI.

I did do one 1000 hit parse, and the results were interesting. What I did was I cast Shroud of the Spirits on myself, and then removed worn AC until my UI showed 1118 AC. 1118 AC is what my UI reads when I have 363 worn AC:

================================================== ==============
346 AC Test, Nothing in Back or Secondary Slot. Has Shroud of the Spirits Buff (+28 AC?)
================================================== ==============

DV, Count
19, 368
22, 36
25, 34
28, 44
32, 36
35, 29
38, 43
42, 38
45, 22
48, 30
52, 34
55, 32
58, 48
62, 33
65, 47
68, 29
72, 33
75, 31
78, 26
82, 7

Total Damage = 38381

This might indicate Spell AC might be more effective than regular AC on P99. My 363 AC test without a shield in the secondary slot had a little over 39,000 damage. A reduction of ~700 damage when adding 28 spell AC seems like it may be a bit much if it was simply softcapped. 346 + 28 = 374, which is only 11 more softcapped AC from the 363 AC test. This obviously isn't conclusive yet. I'll need to run more tests. But it is interesting.
Last edited by DeathsSilkyMist; 10-20-2025 at 02:34 AM..
Reply With Quote