<abilities>
  <ability>
    <clone>vicious_lunge</clone>
    <key>vicious_lunge_3</key>
    <description>
      Move to and attack a target within ⮃{{stat -> key:LungeRangeBoost, add:5, pluralize:tile}}⮃ for
      ⮃+100% damage⮃.
      [p]Lunging will reduce your defenses for 2 turns, increasing incoming damage by 25%.
    </description>
    <targetInfo>
      <type>Lunge</type>
      <lungeTargeting>
        <selectionArea>
          <type>square</type>
          <allowTargets>
            <allowCreature>true</allowCreature>
            <allowEmpty>false</allowEmpty>
            <allowPlayer>false</allowPlayer>
          </allowTargets>
          <params>
            <params type="width">5</params>
            <params type="height">5</params>
            <params type="expandStat">LungeRangeBoost</params>
          </params>
        </selectionArea>
      </lungeTargeting>
      <abilityUseTime>
        <type>weapon</type>
      </abilityUseTime>
      <jumpEffects>
        <jumpEffect>
          ShowAnimation -> key:dustring;
          PlaySound -> key:dash;
        </jumpEffect>
      </jumpEffects>
      <postTargetEffects>
        <postTargetEffect>
          AND PlayerHasAbility -> key:killing_momentum;
          AND IsDead;
          THEN ReduceCooldown -> key:vicious_lunge, amount:5, starts_with:true;
          THEN write_log -> logAfterCombat:true, text:-5 cooldown to Vicious Lunge (Killing Momentum),
          type:combat;
        </postTargetEffect>
      </postTargetEffects>
    </targetInfo>
    <unlockInfo>
      <autoDiscover>0</autoDiscover>
      <unlockRequirements>
        <requiredPoints>1</requiredPoints>
      </unlockRequirements>
      <replaces>vicious_lunge_2</replaces>
    </unlockInfo>
    <attacks>
      <attacks>
        <count>0</count>
        <animation>spell_stab_02</animation>
        <modifiers>
          <modifiers>
            <type>Damage</type>
            <amount>1.0</amount>
          </modifiers>
        </modifiers>
        <selfEffects>
          <selfEffects>
            IF PlayerHasAbility -> key:shadowstride;
            AND PlayerLastAttackHit;
            AND HasStatusEffect -> key:shadowstride_status;
            THEN ExtendStatusEffect -> key:shadowstride_status, target:player, amount:1;
            THEN write_log -> logAfterCombat:true, text:Shadowstride extended, type:combat;
          </selfEffects>
          <selfEffects>
            IF PlayerHasAbility -> key:shadowstride;
            AND PlayerLastAttackHit;
            AND NOT HasStatusEffect -> key:shadowstride_status;
            THEN ApplyStatusEffect -> key:shadowstride_status, target:player, refresh:true;
            THEN write_log -> logAfterCombat:true, text:Entered Shadowstride, type:combat;
          </selfEffects>
          <selfEffects>
            IF PlayerHasAbility -> key:shadowstride;
            AND NOT PlayerLastAttackHit;
            AND NOT HasStatusEffect -> key:vicious_lunge_exposed;
            THEN ApplyStatusEffect -> key:vicious_lunge_exposed, target:player, refresh:true;
          </selfEffects>
          <selfEffects>
            IF NOT PlayerHasAbility -> key:shadowstride;
            AND NOT HasStatusEffect -> key:vicious_lunge_exposed;
            THEN ApplyStatusEffect -> key:vicious_lunge_exposed, target:player, refresh:true;
          </selfEffects>
        </selfEffects>
      </attacks>
    </attacks>
  </ability>
</abilities>
