From 64d3c5c1211169d2046cd6fa4db10b66091e5c16 Mon Sep 17 00:00:00 2001 From: geeckon Date: Sat, 10 Feb 2024 23:44:37 +0200 Subject: [PATCH] Add bonus action tracker --- .../EasyGiantsFoundryConfig.java | 13 ++++++++++++- .../EasyGiantsFoundryPlugin.java | 2 ++ .../EasyGiantsFoundryState.java | 18 ++++++++++++++++++ .../easygiantsfoundry/FoundryOverlay2D.java | 16 ++++++++++++++++ 4 files changed, 48 insertions(+), 1 deletion(-) diff --git a/src/main/java/com/toofifty/easygiantsfoundry/EasyGiantsFoundryConfig.java b/src/main/java/com/toofifty/easygiantsfoundry/EasyGiantsFoundryConfig.java index f053746..d9a5e1b 100644 --- a/src/main/java/com/toofifty/easygiantsfoundry/EasyGiantsFoundryConfig.java +++ b/src/main/java/com/toofifty/easygiantsfoundry/EasyGiantsFoundryConfig.java @@ -223,11 +223,22 @@ public interface EasyGiantsFoundryConfig extends Config { return true; } + @ConfigItem( + keyName = "bonusActions", + name = "Bonus Actions", + description = "Toggle for Bonus actions text", + position = 5, + section = infoPanelList + ) + default boolean drawBonusActions() { + return true; + } + @ConfigItem( keyName = "shopPoints", name = "Reputation", description = "Toggle for reputation text", - position = 5, + position = 6, section = infoPanelList ) default boolean drawShopPoints() diff --git a/src/main/java/com/toofifty/easygiantsfoundry/EasyGiantsFoundryPlugin.java b/src/main/java/com/toofifty/easygiantsfoundry/EasyGiantsFoundryPlugin.java index dbfc44a..866c533 100644 --- a/src/main/java/com/toofifty/easygiantsfoundry/EasyGiantsFoundryPlugin.java +++ b/src/main/java/com/toofifty/easygiantsfoundry/EasyGiantsFoundryPlugin.java @@ -301,6 +301,8 @@ public class EasyGiantsFoundryPlugin extends Plugin return; } + state.addBonusActionReceived(); + if (config.bonusNotification()) { notifier.notify("Bonus - Click tool"); diff --git a/src/main/java/com/toofifty/easygiantsfoundry/EasyGiantsFoundryState.java b/src/main/java/com/toofifty/easygiantsfoundry/EasyGiantsFoundryState.java index 47e2b63..94e2fc6 100644 --- a/src/main/java/com/toofifty/easygiantsfoundry/EasyGiantsFoundryState.java +++ b/src/main/java/com/toofifty/easygiantsfoundry/EasyGiantsFoundryState.java @@ -50,6 +50,9 @@ public class EasyGiantsFoundryState @Getter private boolean enabled; + @Getter + private int bonusActionsReceived = 0; + private final List stages = new ArrayList<>(); private double heatRangeRatio = 0; @@ -57,6 +60,7 @@ public class EasyGiantsFoundryState { stages.clear(); heatRangeRatio = 0; + bonusActionsReceived = 0; } public int getHeatAmount() @@ -204,4 +208,18 @@ public class EasyGiantsFoundryState else return 0; } + + public int getBonusActionsExpected() + { + if (getStages().size() >= 6) { + return 3; + } + + return 2; + } + + public void addBonusActionReceived() + { + ++bonusActionsReceived; + } } diff --git a/src/main/java/com/toofifty/easygiantsfoundry/FoundryOverlay2D.java b/src/main/java/com/toofifty/easygiantsfoundry/FoundryOverlay2D.java index 660271f..c466606 100644 --- a/src/main/java/com/toofifty/easygiantsfoundry/FoundryOverlay2D.java +++ b/src/main/java/com/toofifty/easygiantsfoundry/FoundryOverlay2D.java @@ -50,6 +50,16 @@ public class FoundryOverlay2D extends OverlayPanel return ColorScheme.PROGRESS_ERROR_COLOR; } + private Color getBonusActionsColor(int received, int expected) + { + if (received >= expected) + { + return ColorScheme.PROGRESS_COMPLETE_COLOR; + } + + return ColorScheme.PROGRESS_INPROGRESS_COLOR; + } + @Override public Dimension render(Graphics2D graphics) { @@ -96,6 +106,12 @@ public class FoundryOverlay2D extends OverlayPanel LineComponent.builder().left("Heat left").right(heatLeft + "").rightColor(getHeatColor(actionsLeft, heatLeft)).build() ); } + if (config.drawBonusActions()) + { + panelComponent.getChildren().add( + LineComponent.builder().left("Bonus actions").right(state.getBonusActionsReceived() + "/" + state.getBonusActionsExpected()).rightColor(getBonusActionsColor(state.getBonusActionsReceived(), state.getBonusActionsExpected())).build() + ); + } } // // int points = plugin.getPointsTracker().getShopPoints();