From b2b3ca8dcc07d978be50e05ba15e94b66891a1d5 Mon Sep 17 00:00:00 2001 From: asofold Date: Mon, 7 Dec 2015 08:18:13 +0100 Subject: [PATCH] Other special cases for water. --- .../nocheatplus/checks/moving/SurvivalFly.java | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/NCPCore/src/main/java/fr/neatmonster/nocheatplus/checks/moving/SurvivalFly.java b/NCPCore/src/main/java/fr/neatmonster/nocheatplus/checks/moving/SurvivalFly.java index e3c4ea35..b2462710 100644 --- a/NCPCore/src/main/java/fr/neatmonster/nocheatplus/checks/moving/SurvivalFly.java +++ b/NCPCore/src/main/java/fr/neatmonster/nocheatplus/checks/moving/SurvivalFly.java @@ -1160,8 +1160,11 @@ public class SurvivalFly extends Check { // TODO: Do any belong into odd gravity? (Needs re-grouping EVERYTHING anyway.) return (data.sfJumpPhase == 1 || data.sfJumpPhase == 2) && ( + // Too few decrease on first moves out of water. + data.lastYDist > 0.0 && yDistance < data.lastYDist - GRAVITY_MAX && yDistDiffEx > 0.0 && yDistDiffEx < GRAVITY_MAX + GRAVITY_ODD + && (data.liftOffEnvelope == LiftOffEnvelope.LIMIT_LIQUID || data.liftOffEnvelope == LiftOffEnvelope.LIMIT_NEAR_GROUND) // Jump or decrease falling speed after a small gain (could be bounding box?). - yDistDiffEx > 0.0 && data.liftOffEnvelope != LiftOffEnvelope.NORMAL + || yDistDiffEx > 0.0 && data.liftOffEnvelope != LiftOffEnvelope.NORMAL && data.lastYDist >= -GRAVITY_MAX - GRAVITY_MIN && data.lastYDist < GRAVITY_MAX + GRAVITY_SPAN && yDistance > data.lastYDist && yDistance < 0.84 * maxJumpGain // Falling slightly too fast. @@ -1726,6 +1729,13 @@ public class SurvivalFly extends Check { ) { return new double[]{data.lastYDist - GRAVITY_MAX - GRAVITY_MIN, 0.0}; } + // Increase speed slightly on second in-medium move. + // TODO: Also without velocity? + else if (data.insideMediumCount <= 1 && + data.lastYDist < 0.8 && yDistance < data.lastYDist - GRAVITY_ODD && yDistance > data.lastYDist - GRAVITY_MAX + ) { + + } // In-water rough near-0-inversion from allowed speed to a negative amount, little more than allowed (magic -0.2 roughly). else if (data.lastYDist >= GRAVITY_MAX / 2.0 && data.lastYDist <= GRAVITY_MAX + GRAVITY_MIN / 2.0 && yDistance < 0.0 && yDistance > -2.0 * GRAVITY_MAX - GRAVITY_MIN / 2.0