From 9c0c8b984e8de69ec1ada50221a30018152018b4 Mon Sep 17 00:00:00 2001 From: Melledy <121644117+Melledy@users.noreply.github.com> Date: Sat, 24 Oct 2026 02:44:55 -0700 Subject: [PATCH] Fix coins not being spent in monolith shops in vita mode --- .../game/tower/cases/StarTowerHawkerCase.java | 24 +++++++++++-------- 1 file changed, 14 insertions(+), 10 deletions(-) diff --git a/src/main/java/emu/nebula/game/tower/cases/StarTowerHawkerCase.java b/src/main/java/emu/nebula/game/tower/cases/StarTowerHawkerCase.java index a811d09..f9760ae 100644 --- a/src/main/java/emu/nebula/game/tower/cases/StarTowerHawkerCase.java +++ b/src/main/java/emu/nebula/game/tower/cases/StarTowerHawkerCase.java @@ -136,23 +136,17 @@ public class StarTowerHawkerCase extends StarTowerBaseCase { if (hawker.hasReRoll()) { // Refresh shop items - this.refresh(rsp); + this.refresh(hawker.getAuto(), rsp); } else if (hawker.hasSid()) { // Buy shop items - this.buy(hawker.getSid(), rsp); - } - - // Auto mode consumes vita energy - if (hawker.getAuto()) { - var change = this.getPlayer().getInventory().removeItem(GameConstants.VITA_ENERGY_ITEM_ID, GameConstants.VITA_ENERGY_COST); - rsp.setChange(change.toProto()); + this.buy(hawker.getSid(), hawker.getAuto(), rsp); } // Success return rsp; } - private void refresh(StarTowerInteractResp rsp) { + private void refresh(boolean auto, StarTowerInteractResp rsp) { // Check if we can refresh if (this.getModifiers().getShopRerollCount() <= 0) { return; @@ -179,6 +173,11 @@ public class StarTowerHawkerCase extends StarTowerBaseCase { // Remove coins var change = this.getGame().addItem(GameConstants.TOWER_COIN_ITEM_ID, -price); + // Auto mode consumes vita energy + if (auto) { + this.getPlayer().getInventory().removeItem(GameConstants.VITA_ENERGY_ITEM_ID, GameConstants.VITA_ENERGY_COST, change); + } + // Set change info rsp.setChange(change.toProto()); @@ -186,7 +185,7 @@ public class StarTowerHawkerCase extends StarTowerBaseCase { this.getGame().getPlayer().trigger(QuestCondition.TowerSpecificShopReRollTotal, 1); } - private void buy(int sid, StarTowerInteractResp rsp) { + private void buy(int sid, boolean auto, StarTowerInteractResp rsp) { // Get goods var goods = this.getGoods().get(sid); if (goods == null) { @@ -227,6 +226,11 @@ public class StarTowerHawkerCase extends StarTowerBaseCase { this.getGame().getPlayer().trigger(QuestCondition.TowerSpecificShopBuyDiscountTotal, 1); } + // Auto mode consumes vita energy + if (auto) { + this.getPlayer().getInventory().removeItem(GameConstants.VITA_ENERGY_ITEM_ID, GameConstants.VITA_ENERGY_COST, change); + } + // Set change info rsp.setChange(change.toProto()); }