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

View File

@@ -526,6 +526,8 @@ public abstract class Char extends Actor {
if (defender.buff(MonkEnergy.MonkAbility.Focus.FocusBuff.class) != null && !magic){
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.

View File

@@ -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 {

View File

@@ -548,8 +548,8 @@ public class Hero extends Char {
return Messages.get(RoundShield.GuardTracker.class, "guarded");
}
if (buff(MonkEnergy.MonkAbility.Focus.FocusBuff.class) != null){
buff(MonkEnergy.MonkAbility.Focus.FocusBuff.class).detach();
if (buff(MonkEnergy.MonkAbility.Focus.FocusActivation.class) != null){
buff(MonkEnergy.MonkAbility.Focus.FocusActivation.class).detach();
if (sprite != null && sprite.visible) {
Sample.INSTANCE.play(Assets.Sounds.HIT_PARRY, 1, Random.Float(0.96f, 1.05f));
}