<abilities>
  <ability>
    <name>Vicious Lunge</name>
    <key>vicious_lunge</key>
    <skill>Daggers</skill>
    <icon>vicious_lunge</icon>
    <tagline>"If the target is within reach, why waste time?"</tagline>
    <description>
      Move to and attack a target within ⮃{{stat -> key:LungeRangeBoost, add:3, pluralize:tile}}⮃ for
      ⮃+50% damage⮃.
      [p]Lunging will reduce your defenses for 2 turns, increasing incoming damage by 25%.
    </description>
    <type>Target</type>
    <cost>40.0</cost>
    <cooldown>10</cooldown>
    <targetInfo>
      <type>Lunge</type>
      <lungeTargeting>
        <selectionArea>
          <type>square</type>
          <allowTargets>
            <allowCreature>true</allowCreature>
            <allowEmpty>false</allowEmpty>
            <allowPlayer>false</allowPlayer>
          </allowTargets>
          <params>
            <params type="width">3</params>
            <params type="height">3</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>2</requiredPoints>
        <requires>knife_handler</requires>
      </unlockRequirements>
    </unlockInfo>
    <extraTexts>
      <extraTexts>
        {{upgrade_text -> ability:shadowstride, text:If Vicious Lunge hits\, go invisible for 2 turns.}}
      </extraTexts>
      <extraTexts>
        {{upgrade_text -> ability:killing_momentum}}
      </extraTexts>
    </extraTexts>
    <requirements>
      <requirements>
        <type>Weapon</type>
        <params>
          <params type="weapon">Dagger</params>
        </params>
      </requirements>
      <requirements>
        <type>MobilityEnabled</type>
      </requirements>
    </requirements>
    <statusEffects>
      <statusEffects>
        <turns>2</turns>
        <name>Exposed</name>
        <key>vicious_lunge_exposed</key>
        <icon>vicious_lunge</icon>
        <modifiers>
          <modifiers>
            <type>DamageReceived</type>
            <amount>0.25</amount>
          </modifiers>
        </modifiers>
      </statusEffects>
    </statusEffects>
    <attacks>
      <attacks>
        <count>0</count>
        <animation>spell_stab_02</animation>
        <modifiers>
          <modifiers>
            <type>Damage</type>
            <amount>0.5</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>
