Results -9 to 0 of 58

Threaded View

  1. #7
    Player
    Jpec07's Avatar
    Join Date
    Jul 2015
    Posts
    868
    Character
    Matthias Gendrin
    World
    Cactuar
    Main Class
    Paladin Lv 80
    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:

    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;
    }
    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:
    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;
        }
    }
    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)).

    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.
    (7)
    Last edited by Jpec07; 03-31-2016 at 12:52 AM.
    __________________________
    A dungeon party with two summoners always makes me egi.

    Beginner's Overview to Tanking in FFXIV: http://forum.square-enix.com/ffxiv/threads/352455
    Learn to Play (it's not what you think): http://www.l2pnoob.org/