Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions src/haven/CFG.java
Original file line number Diff line number Diff line change
Expand Up @@ -197,6 +197,7 @@ public class CFG<T> {
public static final CFG<Boolean> AUTO_DRINK_ENABLED = new CFG<>("automation.autodrink.enabled", false);
public static final CFG<Integer> AUTO_DRINK_THRESHOLD = new CFG<>("automation.autodrink.threshold", 74);
public static final CFG<Integer> AUTO_DRINK_DELAY = new CFG<>("automation.autodrink.delay", 250);
public static final CFG<Integer> AUTO_DRINK_FORCED_INTERVAL = new CFG<>("automation.autodrink.forced_interval", 15000);
public static final CFG<Boolean> ENABLE_PURGE_BUTTON_IN_KIN_LIST = new CFG<>("ui.enable_purge_button_kin_list", false);

private static final String CONFIG_JSON = "config.json";
Expand Down
7 changes: 5 additions & 2 deletions src/haven/bot/AutoDrink.java
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ public class AutoDrink {

GameUI gui = null;
long lastDrinkTime = 0;
public float carried_drinks = 0;

private AutoDrink(){}

Expand Down Expand Up @@ -49,8 +50,10 @@ public void tick(Gob gob) {
if (meter != null) {
double currentStamina = meter.meter(0);
if (currentStamina >= 0 && currentStamina < (autoDrinkThreshold / 100f)) {
lastDrinkTime = currentTime;
gui.wdgmsg("act", "drink");
if (carried_drinks > 0 || currentTime - lastDrinkTime > CFG.AUTO_DRINK_FORCED_INTERVAL.get()) {
lastDrinkTime = currentTime;
gui.wdgmsg("act", "drink");
}
}
}
}
Expand Down
5 changes: 5 additions & 0 deletions src/me/ender/ui/DrinkMeter.java
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@

import auto.InvHelper;
import haven.*;
import haven.bot.AutoDrink;

import java.awt.*;
import java.util.List;
Expand Down Expand Up @@ -109,6 +110,10 @@ private boolean process() {
max += ItemData.getMaxCapacity(item) / 100f;
}

// a bit hacky but I wanted to avoid repeated inventory inspection
// TODO: make option to drink tea (will require flower menu which interferes with controls)
AutoDrink.getInstance().carried_drinks = water;

return true;
}

Expand Down