From 125d7f103325183942178b328e40b51b9cee0f09 Mon Sep 17 00:00:00 2001 From: alxl Date: Sun, 29 Nov 2020 20:31:01 -0600 Subject: [PATCH] Negative alc calc --- src/com/dre/brewery/BPlayer.java | 26 +++++++++++--------------- src/com/dre/brewery/Brew.java | 9 +++++---- src/com/dre/brewery/lore/BrewLore.java | 2 +- 3 files changed, 17 insertions(+), 20 deletions(-) diff --git a/src/com/dre/brewery/BPlayer.java b/src/com/dre/brewery/BPlayer.java index 015954e..bca2f80 100644 --- a/src/com/dre/brewery/BPlayer.java +++ b/src/com/dre/brewery/BPlayer.java @@ -180,28 +180,20 @@ public class BPlayer { int quality = drinkEvent.getQuality(); List effects = getBrewEffects(brew.getEffects(), quality); - if (brewAlc == 0) { - //no alcohol so we dont need to add a BPlayer - applyEffects(effects, player, PlayerEffectEvent.EffectType.DRINK); - if (bPlayer.drunkeness <= 0) { - bPlayer.remove(); - } - } - - if (brewAlc > 0) { + applyEffects(effects, player, PlayerEffectEvent.EffectType.DRINK); + if (brewAlc < 0) { + bPlayer.drainAndRemove(player, -brewAlc); + } else if (brewAlc > 0) { bPlayer.drunkeness += brewAlc; if (quality > 0) { bPlayer.quality += quality * brewAlc; } else { bPlayer.quality += brewAlc; } - } else { - bPlayer.drainAndRemove(player, -brewAlc); + + applyEffects(getQualityEffects(quality, brewAlc), player, PlayerEffectEvent.EffectType.QUALITY); } - - applyEffects(effects, player, PlayerEffectEvent.EffectType.DRINK); - applyEffects(getQualityEffects(quality, brewAlc), player, PlayerEffectEvent.EffectType.QUALITY); - + if (bPlayer.drunkeness > 100) { bPlayer.drinkCap(player); } @@ -210,6 +202,10 @@ public class BPlayer { if (BConfig.showStatusOnDrink) { bPlayer.showDrunkeness(player); } + + if (bPlayer.drunkeness <= 0) { + bPlayer.remove(); + } return true; } diff --git a/src/com/dre/brewery/Brew.java b/src/com/dre/brewery/Brew.java index 0174dfb..9394efe 100644 --- a/src/com/dre/brewery/Brew.java +++ b/src/com/dre/brewery/Brew.java @@ -373,9 +373,7 @@ public class Brew implements Cloneable { // quality decides 10% - 100% alc *= ((float) quality / 10.0f); } - if (alc > 0) { - return alc; - } + return alc; } return 0; } @@ -516,7 +514,10 @@ public class Brew implements Cloneable { } public int getOrCalcAlc() { - return alc > 0 ? alc : (alc = calcAlcohol()); + if (alc == 0) { + alc = calcAlcohol(); + } + return alc; } public void setAlc(int alc) { diff --git a/src/com/dre/brewery/lore/BrewLore.java b/src/com/dre/brewery/lore/BrewLore.java index 6453f2e..20ab518 100644 --- a/src/com/dre/brewery/lore/BrewLore.java +++ b/src/com/dre/brewery/lore/BrewLore.java @@ -275,7 +275,7 @@ public class BrewLore { } public void updateAlc(boolean inDistiller) { - if (!brew.isUnlabeled() && (inDistiller || BConfig.alwaysShowAlc) && (!brew.hasRecipe() || brew.getCurrentRecipe().getAlcohol() > 0)) { + if (!brew.isUnlabeled() && (inDistiller || BConfig.alwaysShowAlc) && (!brew.hasRecipe() || brew.getCurrentRecipe().getAlcohol() != 0)) { int alc = brew.getOrCalcAlc(); addOrReplaceLore(Type.ALC, "ยง8", P.p.languageReader.get("Brew_Alc", alc + "")); } else {