Joined: Mon Jun 09, 2014 3:47 pm
There are several different methods of avoiding damage once you are hit by your opponent that occur in a very specific order. Each of these abilities has a specific way of checking to see if it works or not, and I hope to detail them all out for you below.
To start, there is a specific order in which the abilities are checked:
Parry, Palm Block (monks only), Dodge, Shield Block and Shadows (Gypsy guild spell).
Parry is a skill that encompasses a vast number of factors to determine if the skill succeeds or not once an attack lands. To begin, you start with a (Skill/2)% chance as a baseline for success, and add 10% to the roll if you are using either a two handed weapon OR a staff, spear or polearm (these bonuses do not stack and do not matter for a weapon held in your offhand, only a ‘wielded’ weapon counts). Another bonus is available to rangers who are dual wielding of +20%. At the end of the formula is a modifier in the event that you, the person parrying is blind. Additionally, all non-magic classes add their Hitroll/7% to their parry rate as well. Finally, all blind non-Drow (remember, they have the blindfighting racial buff), then divides the sum of this formula by 2.
This makes the formula:
Parry% = ((Skill/2)% + (2h or type modifier [10%]) + Dual Wield Modifier [20%] + Hitroll/7%) / Blind Modifier [2 if blind and not Drow]
Global Note: Dark Risings rounds down, always and forever.
Examples 1: A Draconian Ranger with 100 hit dice is dual wielding a polearm and any other weapon and has their parry skill at 100%. This would mean their parry chance works out to be (50% + 10% + 20% + 14%) = 94%. (Writers Note: This value seems absurd to me)
Example 2: A Kine Mage with 100% parry skill and a staff would be: 50% + 10% = 60%
Example 3: A Kine Barbarian with 108 hitroll wielding a 2h axe would be: 50% + 10% + 15% = 75%
Palm Block is a monk only parry alternative, and a much simpler skill to calculate than parry… and it’s on hold until after I talk to Kes to make sure I have it correct. The big thing is there are actual stat checks in it (so high dex matters).
I’ll let people know when this gets updated, but it matters to so few people I won’t hold up posting the rest of the write up.
Dodge isn’t as complex as parry, but there are still a few extra factors that work into the calculation.
To start, your base rate to dodge is your skill divided by 2. There is a level modifier on the ability (you have a lower dodge rate against higher level enemies - mainly changes your rates in PvE), as well as a hitroll modifier, associated with melee classes. Melee classes will decrease their opponents chance to dodge by (Hitroll / 10)%. Additionally, in PvP, being attacked with a weapon that you’re vulnerable to will reduce your chance to dodge the attack by a flat 15%.
So, to try and put it all together in a formula, your chance to dodge is based on:
Chance = (Dodge Skill % / 2) +/- Level Differential (Usually 0 in PvP) - 15% (If vuln) - (Attackers Hitroll / 10)% [If attack is Melee]
Shield Block is one of the simplest checks. Your chance is (Skill / 5)% + 3%. That’s it.
For Gypsies, shadows is the easiest check. You have a 30% chance to step into the shadows against an attack.
I’m not 100% certain where dragon punch works into the equation (the above abilities are all part of a single function for the order of checks), but the function does not seem to include dragon punch in it. I’d assume it comes after all of the above abilities.
The chance to fire is based on your base skill% / 6. There is then a level differential check, though it is very minimal as the result of the check is divided by 2. Your entire dexterity stat is added to your chance, but your opponent's entire stat value is subtracted (it acts as a check, but only indirectly in the code) and half of your strength stat is added to the chance.
If it fires, you will do your equipped weapons damoun in an attack back. If you are unarmed you will do bash damage back.
In addition to releasing this information, I am also releasing roughly 60,000 iterations of raw attack data I’ve collected on 1315 in the last few weeks thanks to Lafindan’s combat scraping script. I would love to hear feedback on how the system currently works (in conjunction with the new AC system) to try and figure out some reasonable changes to make combat make a little more sense. I have some basic statistics done inside the file, but the data can be looked at in far more detailed ways.
You can find the data here. If there are other iterations of the data that would be helpful for someone to look at, please let me know and I can get it taken care of.
I’m also aware that there are some oddities with the data (mainly in the miss rates), we’ll have to look into that in the near future as well.