How does armor currently work here?

Discussion in 'General Discussion' started by Cerebro, Oct 28, 2015.

  1. lurari

    lurari People Like Me

    Messages:
    646
    Furious Bash is a percentage mod on your bash hate.

    Bash hate is simply Shield AC, capped at 25. So a 10 AC shield gets you 10 hate per bash, a 25 AC shield gets you 25 hate per bash, and a 75 AC shield gets you 25 hate per bash.

    Furious Bash 1 is a 1-10% increase, Furious Bash 2 is a 1-20% increase, etc. as normal focus effects work. So a Furious Bash IV Shield grants 1-40% extra hate, or an average of 20% bonus hate so 30 hate per bash.

    As RW mentioned, the focus worked as a general hate mod for knight spellcasting because of the way AK was coded. For warriors, Furious Bash was hardly a footnote, but knights could benefit with a powerful aggro mod.
     
  2. Bum

    Bum I Feel Loved

    Messages:
    2,647
    yeah,

    i loved reading his guild updates, was so much lolz
     
  3. Pithy

    Pithy I Feel Loved

    Messages:
    2,630
    Regarding floating point vs. integer arithmetic, Lua documentation says
    So it looks like the calculations I did earlier with floating point arithmetic should accurately reproduce what the server's computing under the hood. Take the riposte code, for example:
    Code:
    [ Only registered users can see the bbcode. Click Here To Register... ]
    With a riposte skill of, say, 225, the first line declares chance as an integer variable and initializes it to 325. Assuming no AA/spell/item bonuses to the riposte chance, the second line increments chance by 0 / 100. Even though 0 and 100 are integers, the output of 0 / 100 is a float, so the second line adds the float 0 to the integer chance, resulting in a float. The third line divides chance by 50, resulting in the float 6.5.

    I'm no C++ expert, but I think C++ handles types differently from Lua. (Wasn't EQ written in C++?) If so, this could be a source of (small) discrepancies between TAKP and AK implementations.

    Can anyone explain, or point me to documentation that explains, what the function zone->random.Roll(chance) does? I assume it rolls a 100-sided die (i.e. draws from the discrete uniform distribution supported on 1, 2, ..., 100) and returns true if chance exceeds the roll?
     
  4. cavedude

    cavedude Administrator Staff Member

    Messages:
    1,893
    Our code is C++, so the result of your example would be an int. The decimal would be truncated.

    random.Roll() rolls a number between 0 and 99, and returns whether that number is less than the number passed to it.
     
    Pithy likes this.
  5. Pithy

    Pithy I Feel Loved

    Messages:
    2,630
    Good point! Here are the bare bones of how TAKP calculates mitigation AC, before the softcap is applied. (For the sake of simplicity, I'm leaving out bells and whistles like AAs and monk/rogue/beastlord bonuses.) This is pretty nearly a paraphrasing of Dzarn's post, except that I'm working from the last public TAKP source version.
    1. Add up the AC from all your items, including your shield.
    2. Multiply that by 4/3.
    3. Add 35 if you're an iksar.
    4. If you're a pure caster, add defense_skill / 2. Otherwise, add defense_skill / 3.
    5. If you're a pure caster, add spell_AC / 3. Otherwise, add spell_AC / 4.
    6. If your agility is over 70, add agility / 20.
    Edit to add: You can find spell_AC for buffs like shielding on TAKP allaclone.

    Does it seem weird that pure casters get more benefit from defense skill (50% vs. 33%) and spell AC (33% vs. 25%) than everyone else? I know Dzarn says exactly that in his post:
    It just strikes me as kinda bass-ackwards. Possibly a misreading of the original EQ spaghetti code on Dzarn's part?
     
    Last edited: Jul 8, 2016
  6. Pithy

    Pithy I Feel Loved

    Messages:
    2,630
    Oh, okay. Thanks for clearing that up, Duder.
     
  7. Pithy

    Pithy I Feel Loved

    Messages:
    2,630
    Er, when you say 'a number between 0 and 99', do you mean an integer or a float?
     
  8. Neealana

    Neealana People Like Me

    Messages:
    1,260
    Furor has joined The Man... is a lore developer for WOW . ( so I heard )
     
  9. cavedude

    cavedude Administrator Staff Member

    Messages:
    1,893
    It's an int, the value passed to it has to be an int as well.
     
    Pithy likes this.
  10. Elroz

    Elroz I Feel Loved Staff Member

    Messages:
    2,283
    Last edited: Jul 7, 2016
  11. Pithy

    Pithy I Feel Loved

    Messages:
    2,630
    Okay, here are some updated skill-based evasion numbers at level 60, using integer arithmetic instead of floating point. Integer division happens to hurt knights more than warriors/monks. Sorry knights!

    warrior (225 riposte, 230 parry, 175 dodge)
    6% riposte chance
    if no riposte, 7% parry chance --> 6.6% total parry chance
    if no riposte/parry, 6% dodge chance --> 5.2% total dodge chance
    --> 18.2% total chance (0.5% lower than float math)

    knight (200 riposte, 200 parry, 155 dodge)
    6% riposte chance
    if no riposte, 6% parry chance --> 5.6% total parry chance
    if no riposte/parry, 5% dodge chance --> 4.4% total dodge chance
    --> 16% total chance (1.3% lower than float math)

    monk (225 riposte, 225 block, 230 dodge)
    6% riposte chance
    if no riposte, 13% block chance --> 12.2% total block chance
    if no riposte/block, 7% dodge chance --> 5.7% total dodge chance
    --> 23.9% total chance (0.6% lower than float math)
     
  12. Lenas

    Lenas I Feel Loved

    Messages:
    2,968
    Does spell AC not translate to visible AC 1:1? I am getting 15 AC from a +45 buff (Warder's Protection) and 31 AC from a +105 (Thorncoat) buff.
     
  13. Pithy

    Pithy I Feel Loved

    Messages:
    2,630
    Q: How much does agility affect mitigation?

    A: It's basically irrelevant. Mitigation AC includes about 5% of your agility. If by hook or by crook you claw your way from 100 to 255 agility, it's worth 7 or 8 worn AC. Above the softcap, mitigation AC from agility gets nerfed just like mitigation AC from worn items.

    Q: How much does agility affect avoidance?

    A: It's not nothin'. Avoidance AC includes about 22% of your agility. Assuming 252 defense skill, increasing your agility from 100 to 255 increases your avoidance AC from 461 to 495. How does that translate into the likelihood of a mob missing you? It depends on the mob's level and accuracy. For a level 70 mob with, say, 500 accuracy (I pulled that number out of my ass; no idea about actual raid mobs' accuracy), increasing your agility from 100 to 255 should increase the mob's miss rate from ~20.5% to ~22%. That's assuming the Mob::AvoidanceCheck and Mob::GetToHit functions haven't been changed since the source closed.
     
  14. Lenas

    Lenas I Feel Loved

    Messages:
    2,968
    If my maths are right my tank set puts me somewhere around 418 Mit AC. Neat. Guess I can swap some gear.
     
  15. Pithy

    Pithy I Feel Loved

    Messages:
    2,630
    No, spell AC gets multiplied by 0.295 for non-silkies (0.394 for silkies) before it's added to visible AC, because reasons.

    In terms of mitigation, 1 point of item AC is worth 5.3 points of spell AC for non-silkies (4 points for silkies). Spell AC gets nerfed by the softcap just like worn AC.
     
    Last edited: Nov 14, 2016
  16. Pithy

    Pithy I Feel Loved

    Messages:
    2,630
    Wow, that's already well over the ranger softcap of 375. Level 60 rangers get 10% returns on AC over the cap, if that helps gearing decisions.
     
  17. Lenas

    Lenas I Feel Loved

    Messages:
    2,968
    I have been playing around with my gear a bit and it seems like, unbuffed ~940 visible AC is the ranger sweet spot to hit the soft cap assuming minimal group buffs (Warders, Thorncoat, Riftwind's, Heroic Bond). That's not knowing about the 10% return over cap and if I were actually planning on tanking I'd have more buffs like the cleric AC line.

    All in all pretty easy to hit the cap. In Velious it'll be surpassed without a thought.
     
    Last edited: Jul 7, 2016
  18. Torven

    Torven I Feel Loved

    Messages:
    2,742
    If he was wrong, I would have noticed it when parsing casters as I plug in stats into my spreadsheet and verify that the calculated AC matches the in-game character sheet.

    The AC value you see on websites is not the AC value in the database/spell data. Websites decided to do their own division to make the values they show more closely match the change in character sheet AC. (which they did not get precise either) I believe the websites just divided the spell data AC value by 3.
     
    Mambo, Lenas and Pithy like this.
  19. Lenas

    Lenas I Feel Loved

    Messages:
    2,968
    lucy.alkabor.com lists Warders at +13 and Thorncoat as +31 which is what I see in game.
    Allakabor/Allaclone lists them at +36-45 and +105 respectively...

    Which values are actually correct for this formula?
     
    Last edited: Jul 7, 2016
  20. Pithy

    Pithy I Feel Loved

    Messages:
    2,630
    Q: Does my class affect my avoidance?

    A: Not directly, no. A mob's chance to miss you depends only on its level, its accuracy, your defense skill, and your agility. That being said, different classes have different defense skill caps. For example, a warrior (252 defense) has 190 more avoidance AC than a silk caster (145 defense) with the same agility.
     
  21. Pithy

    Pithy I Feel Loved

    Messages:
    2,630
    Here's some data on combined avoidance (mob whiffs) and skill-based evasion (dodges). These numbers assume the mob that's swinging at you has a flat 20% miss rate; in practice, that number depends on the mob but (assuming everyone has the same defense skill and agility) not on the tank's class. 20% seems kinda plausible for a raid mob.

    warrior (225 riposte, 230 parry, 175 dodge)
    20% miss chance
    if no miss, 6% riposte chance --> 4.8% total riposte chance
    if no miss/riposte, 7% parry chance --> 5.3% total parry chance
    if no miss/riposte/parry, 6% dodge chance --> 4.2% total dodge chance
    --> 34.3% total chance not to hit

    knight (200 riposte, 200 parry, 155 dodge)
    20% miss chance
    if no miss, 6% riposte chance --> 4.8% total riposte chance
    if no miss/riposte, 6% parry chance --> 4.5% total parry chance
    if no miss/riposte/parry, 5% dodge chance --> 3.5% total dodge chance
    --> 32.8% total chance not to hit

    monk (225 riposte, 225 block, 230 dodge)
    20% miss chance
    if no miss, 6% riposte chance --> 4.8% total riposte chance
    if no miss/riposte, 13% block chance --> 9.8% total block chance
    if no miss/riposte/block, 7% dodge chance --> 4.6% total dodge chance
    --> 39.2% total chance not to hit

    So yeah, suppose a mob swings at a warrior 100 times, a knight 100 times, and a monk 100 times. On average, the beasty should land 67 hits on the knight, 66 hits on the warrior, and 61 hits on the monk. After that, the damage taken is all about mitigation AC. Given comparable worn AC and buffs, the (non-discing) warrior should mitigate slightly better than the knight, and the monk should mitigate like a big steaming pile of chokidai crap.
     
    Last edited: Jul 8, 2016
    Oiwon likes this.
  22. Torven

    Torven I Feel Loved

    Messages:
    2,742
    The 105 would be the 'real' AC value in the database, which is divided by 3 or 4 in the mitigation AC code depending on class. The client sheet AC also does a final multiplier after adding both mitigation and avoidance AC which the server doesn't do, so displayed AC in the client will be different than the server. (Sony apparently wanted to 'obfuscate' stats to make them more mysterious)
     
    Lenas likes this.
  23. Pithy

    Pithy I Feel Loved

    Messages:
    2,630
    (so use TAKP allaclone values for spell AC to compute your mitigation AC)
     
    Last edited: Jul 8, 2016
  24. Lenas

    Lenas I Feel Loved

    Messages:
    2,968
    Thanks big Tor
     
  25. Oiwon

    Oiwon People Like Me

    Messages:
    510
    oh no u didn't
     
  26. Lenas

    Lenas I Feel Loved

    Messages:
    2,968
    Makes sense you have the lowest mitigation in the game when you run around with your nipples out.
     
    Oiwon, Bum and Pithy like this.
  27. Torven

    Torven I Feel Loved

    Messages:
    2,742
    Only the male monks have their nipples out, sadly
     
    Oiwon likes this.
  28. Tuluvien

    Tuluvien I Feel Loved

    Messages:
    1,094
    C++ for You++
     
  29. Lenas

    Lenas I Feel Loved

    Messages:
    2,968
    So does this seem correct for 60 Ranger?

    Typical Buffs
    -- Warder's Protection: 45
    -- Thorncoat: 105
    -- Riftwind's: 40
    -- Heroic Bond: 60
    -- Bulwark of Faith: 125

    TOTAL: 375 AC --- EFFECTIVE: 94 AC

    Bonuses: 80 (def) + 94 (spell) + 7 (agi) = 181

    Softcap = 375
    Bonuses - 181

    Ranger worn AC must >= 194 to reach soft cap?
     
  30. Trybil

    Trybil Member

    Messages:
    21
    If I follow this correctly, in your example Ranger worn AC (by adding up listed item AC) to reach soft cap would be 194 * (3/4) = 145. This is due to the 4/3 multiplier on worn AC the code makes when comparing to soft cap.
    Correct me if I am wrong, I like the way you are thinking. I would like to know when I am hitting softcap so I can prioritize other traits (e.g. sta).