diff --git a/src/main/java/emu/nebula/game/inventory/Inventory.java b/src/main/java/emu/nebula/game/inventory/Inventory.java index dd86155..ea14eb9 100644 --- a/src/main/java/emu/nebula/game/inventory/Inventory.java +++ b/src/main/java/emu/nebula/game/inventory/Inventory.java @@ -721,6 +721,12 @@ public class Inventory extends PlayerManager implements GameDatabaseObject { case Title -> { yield this.getTitles().contains(id); } + case TraceRequest -> { + yield this.getPlayer().getTraceHuntManager().getTraceRequests() >= count; + } + case HuntPermit -> { + yield this.getPlayer().getTraceHuntManager().getHuntPermits() >= count; + } default -> { // Not implemented yield false; diff --git a/src/main/java/emu/nebula/game/tracehunt/TraceHuntManager.java b/src/main/java/emu/nebula/game/tracehunt/TraceHuntManager.java index 228b520..4fda8d2 100644 --- a/src/main/java/emu/nebula/game/tracehunt/TraceHuntManager.java +++ b/src/main/java/emu/nebula/game/tracehunt/TraceHuntManager.java @@ -338,6 +338,13 @@ public class TraceHuntManager extends PlayerManager implements GameDatabaseObjec return false; } + // Check if we have enough cost items + var cost = this.getHuntCost(); + + if (cost != null && !getPlayer().getInventory().hasItem(cost.getExtraCost1Tid(), cost.getExtraCost1Qty())) { + return false; + } + // Set build this.huntPlayerUid = (int) ownerUid; this.huntBossId = bossId; @@ -363,9 +370,6 @@ public class TraceHuntManager extends PlayerManager implements GameDatabaseObjec // Add logs to change info change.setExtraData(logs); - // Add exp - this.addExp(50); - // Calculate result if (this.huntPlayerUid == this.getPlayerUid()) { // Check if we have enough cost items @@ -396,6 +400,9 @@ public class TraceHuntManager extends PlayerManager implements GameDatabaseObjec return null; } + // Add exp + this.addExp(50); + // Add medals this.getPlayer().getInventory().addItem(37, this.getRandomMedals(), change);