From dc1782bec9c5f249237150d41dc904b45b71af94 Mon Sep 17 00:00:00 2001 From: Hikari Date: Fri, 20 Mar 2026 14:35:04 -0700 Subject: [PATCH] chore: add auto-adventurer toggle to adventurer panel header (#94) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The auto-adventurer toggle is now surfaced directly in the adventurer shop panel header, mirroring the auto-boss button. It only renders when the `auto_adventurer` prestige upgrade has been purchased, so players who have not reached prestige see no change. Closes #89 ✨ This PR was created with help from Hikari~ 🌸 Reviewed-on: https://git.nhcarrigan.com/nhcarrigan/elysium/pulls/94 Co-authored-by: Hikari Co-committed-by: Hikari --- .../src/components/game/adventurerPanel.tsx | 40 ++++++++++++++++--- 1 file changed, 34 insertions(+), 6 deletions(-) diff --git a/apps/web/src/components/game/adventurerPanel.tsx b/apps/web/src/components/game/adventurerPanel.tsx index e6efe97..d0f9a95 100644 --- a/apps/web/src/components/game/adventurerPanel.tsx +++ b/apps/web/src/components/game/adventurerPanel.tsx @@ -175,7 +175,7 @@ const AdventurerCard = ({ * @returns The JSX element. */ const AdventurerPanel = (): JSX.Element => { - const { state, formatNumber } = useGame(); + const { state, formatNumber, toggleAutoAdventurer } = useGame(); const [ showLocked, setShowLocked ] = useState(true); const [ batchSize, setBatchSize ] = useState(() => { return parseBatchSize(localStorage.getItem("elysium_batch_size")); @@ -207,6 +207,11 @@ const AdventurerPanel = (): JSX.Element => { } } + const autoAdventurerUnlocked = state.prestige.purchasedUpgradeIds.includes( + "auto_adventurer", + ); + const autoAdventurerOn = state.autoAdventurer === true; + function handleToggle(): void { setShowLocked((current) => { return !current; @@ -217,11 +222,34 @@ const AdventurerPanel = (): JSX.Element => {

{"Adventurers"}

- +
+ {autoAdventurerUnlocked + ? + : null + } + +
{batchOptions.map((option) => {