From ca37b4959fd6f0ce8bd9771fa29ccf7976100354 Mon Sep 17 00:00:00 2001 From: DBotThePony Date: Fri, 14 Mar 2025 17:36:55 +0700 Subject: [PATCH] Bring back old behavior where exhaustion is immediately nullified by energy buffer on Androids --- .../mc/otm/player/MatteryFoodData.kt | 21 +++++++++---------- 1 file changed, 10 insertions(+), 11 deletions(-) diff --git a/src/main/kotlin/ru/dbotthepony/mc/otm/player/MatteryFoodData.kt b/src/main/kotlin/ru/dbotthepony/mc/otm/player/MatteryFoodData.kt index 1ffbc6b74..b460cd7de 100644 --- a/src/main/kotlin/ru/dbotthepony/mc/otm/player/MatteryFoodData.kt +++ b/src/main/kotlin/ru/dbotthepony/mc/otm/player/MatteryFoodData.kt @@ -69,21 +69,20 @@ class MatteryFoodData(private var player: Player) : FoodData() { private var energyToDrain = Decimal.ZERO private fun tickExhaustion() { - if (exhaustionLevel >= EXHAUSTION_PER_HUNGER_POINT) { + if (player.matteryPlayer.isAndroid && exhaustionLevel > 0f) { + energyToDrain += PlayerConfig.ANDROID_ENERGY_PER_HUNGER_POINT * (exhaustionLevel / EXHAUSTION_PER_HUNGER_POINT) + exhaustionLevel = 0f + } else if (exhaustionLevel >= EXHAUSTION_PER_HUNGER_POINT) { var points = (exhaustionLevel / EXHAUSTION_PER_HUNGER_POINT).toInt() exhaustionLevel %= EXHAUSTION_PER_HUNGER_POINT - if (player.matteryPlayer.isAndroid) { - energyToDrain += PlayerConfig.ANDROID_ENERGY_PER_HUNGER_POINT * points - } else { - if (saturationLevel > 0f) { - val satisfied = min(saturationLevel.roundToInt(), points) - points -= satisfied - saturationLevel -= satisfied - } - - foodLevel = max(0, foodLevel - points) + if (saturationLevel > 0f) { + val satisfied = min(saturationLevel.roundToInt(), points) + points -= satisfied + saturationLevel -= satisfied } + + foodLevel = max(0, foodLevel - points) } }