v2.1.0: fixed monk focus dodge rarely triggering on magic attacks

This commit is contained in:
Evan Debenham
2023-05-03 21:43:26 -04:00
parent ae1080aae1
commit e697e72bc1
3 changed files with 14 additions and 2 deletions
@@ -526,6 +526,8 @@ public abstract class Char extends Actor {
if (defender.buff(MonkEnergy.MonkAbility.Focus.FocusBuff.class) != null && !magic){ if (defender.buff(MonkEnergy.MonkAbility.Focus.FocusBuff.class) != null && !magic){
defStat = INFINITE_EVASION; defStat = INFINITE_EVASION;
defender.buff(MonkEnergy.MonkAbility.Focus.FocusBuff.class).detach();
Buff.affect(defender, MonkEnergy.MonkAbility.Focus.FocusActivation.class, 0);
} }
//if accuracy or evasion are large enough, treat them as infinite. //if accuracy or evasion are large enough, treat them as infinite.
@@ -447,6 +447,16 @@ public class MonkEnergy extends Buff implements ActionIndicator.Action {
} }
} }
//tracks just the activation of focus, needed as magical attacks do not trigger it
// but may be dodged normally
public static class FocusActivation extends FlavourBuff {
{
actPriority = VFX_PRIO;
}
}
} }
public static class Dash extends MonkAbility { public static class Dash extends MonkAbility {
@@ -548,8 +548,8 @@ public class Hero extends Char {
return Messages.get(RoundShield.GuardTracker.class, "guarded"); return Messages.get(RoundShield.GuardTracker.class, "guarded");
} }
if (buff(MonkEnergy.MonkAbility.Focus.FocusBuff.class) != null){ if (buff(MonkEnergy.MonkAbility.Focus.FocusActivation.class) != null){
buff(MonkEnergy.MonkAbility.Focus.FocusBuff.class).detach(); buff(MonkEnergy.MonkAbility.Focus.FocusActivation.class).detach();
if (sprite != null && sprite.visible) { if (sprite != null && sprite.visible) {
Sample.INSTANCE.play(Assets.Sounds.HIT_PARRY, 1, Random.Float(0.96f, 1.05f)); Sample.INSTANCE.play(Assets.Sounds.HIT_PARRY, 1, Random.Float(0.96f, 1.05f));
} }