There's really only one thread right now against Parry. There are some who hate the very nature of it (RNG-based mitigation), and some who think it's really valuable. But we all agree that it needs improvement.
I spent a few minutes this morning rereading some of the old threads where the poor nature of Parry was revealed. What we've got for Parry now looks something like this:
I'd like to see the combat table changed so that they aren't if/else statements, so you can parry and/or block critical strikes, so an attack can be both parried AND blocked, etc. My idea would look more like this:Code:function rng(){//returns random integer 1-100} $dodge = $enemy->hitRate - ($character->hasBuff("da_dark_dance") ? 20 : 0) + rng() < 100; $crit = $character->hasBuff("awareness") ? false : $character->hasBuff("raw_intuition") && $enemy->position($character) != 'front' ? true : rng() < $enemy->critRate; $block = $enemy->position($character) != front || $attack->isMagic ? false : $character->hasBuff("sheltron") ? true : $character->blockRate + ($character->hasBuff("bulwark") ? 60 : 0) > rng(); $parry = $enemy->position($character) != front || $attack->isMagic ? false : $character->hasBuff("raw_intuition") ? true : $character->parryRate + ($character->hasBuff("dark_dance") ? 20 : $character->hasBuff("e_dark_dance") || $character->hasBuff("da_dark_dance") ? 30 : 0) > rng(); // This next part is what we call the combat table. // // We're not including things like Living Dead or Hallowed Ground or Rampart, // since listing all of the various debuffs would make this reeeeeeally long. // // Note, it's highly likely that the actual code has a case-switch statement instead // of a long if/else string, because those are a bit faster. if($dodge) { $damage = 0; } else if($crit) { $damage = 1.5 * $attack->damage; } else if($block) { $damage = $attack->damage * (100 - $character->blockStrength); } else if($parry) { $damage = .8 * $attack->damage; else { $damage = $attack->damage; }
This way, the rolls and their sequence are preserved, but we no longer have stats competing with one another. I'd still like to see Parry given a better conversion rate than 35 points to a percent, and maybe given the ability to grow parry mitigation (so instead of .8 * $damage, we could do $damage * (100-$character->parryStrength)).Code:if($dodge) { $damage = 0; } else { $damage = $attack->damage; if($crit) { $damage = 1.5 * $damage; } if($block) { $damage = $damage * (100 - $character->blockStrength); } if($parry) { $damage = .8 * $damage; } }
I did the math in another thread, and even with its poor scaling, Parry is still the best stat for mitigation (yes, even mitigation-by-damage), but it doesn't feel like a very strong stat, and loses its value in magic-heavy fights and fights with prolonged periods of no white damage.


Reply With Quote

