From 79e3cc9046eebf1d72663abffa434b4b9112a2c9 Mon Sep 17 00:00:00 2001 From: asofold Date: Wed, 28 Feb 2018 12:11:32 +0100 Subject: [PATCH] Add in-air VL freeze. Regain hbuf if not frozen --- .../checks/moving/player/SurvivalFly.java | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/NCPCore/src/main/java/fr/neatmonster/nocheatplus/checks/moving/player/SurvivalFly.java b/NCPCore/src/main/java/fr/neatmonster/nocheatplus/checks/moving/player/SurvivalFly.java index f951df45..c859d515 100644 --- a/NCPCore/src/main/java/fr/neatmonster/nocheatplus/checks/moving/player/SurvivalFly.java +++ b/NCPCore/src/main/java/fr/neatmonster/nocheatplus/checks/moving/player/SurvivalFly.java @@ -509,14 +509,16 @@ public class SurvivalFly extends Check { } else { // Slowly reduce the level with each event, if violations have not recently happened. - if (now - data.sfVLTime > cc.survivalFlyVLFreeze) { + // TODO: Switch to move count instead of time (!). + if (now - data.sfVLTime > cc.survivalFlyVLFreeze + && (!cc.survivalFlyVLFreezeInAir || !Magic.inAir(thisMove))) { + // Relax VL. data.survivalFlyVL *= 0.95D; - } - - // Finally check horizontal buffer regain. - if (hDistanceAboveLimit < 0.0 && result <= 0.0 && !isSamePos && data.sfHorizontalBuffer < cc.hBufMax) { - // TODO: max min other conditions ? - hBufRegain(hDistance, Math.min(0.2, Math.abs(hDistanceAboveLimit)), data, cc); + // Finally check horizontal buffer regain. + if (hDistanceAboveLimit < 0.0 && result <= 0.0 && !isSamePos && data.sfHorizontalBuffer < cc.hBufMax) { + // TODO: max min other conditions ? + hBufRegain(hDistance, Math.min(0.2, Math.abs(hDistanceAboveLimit)), data, cc); + } } }