Skip to content

Perk Selection Screen

nxkhxl-04 edited this page Oct 18, 2026 · 1 revision

Perk Selection Screen

Introduction

The Perk Selection Screen provides players with an interface to view their available perks and track progress towards unlocking them. The screen is accessible from the main menu, while the same perk selection component is reused in the in-game death screen.

The UI has been redesigned to match the game's fantasy pixel-art style, using dark card backgrounds, decorative borders, gold accents, pixel-art icons, improved text positioning, progress indicators, and a cyan highlight for the selected perk. The redesign maintains the existing perk selection behaviour while providing a consistent appearance across both screens.

Key Components

PerkSelectionDisplay

PerkSelectionDisplay.java is the shared component responsible for constructing and managing the perk selection interface.

Its responsibilities include:

  • Displaying perk cards with names, descriptions, and progress information.

  • Applying card backgrounds and screen-specific visual styling.

  • Highlighting the currently selected perk.

  • Handling card selection and confirmation.

  • Supporting the existing perk activation and deactivation behaviour.

  • Providing the Continue action through a configured callback.

The mainMenuStyle configuration allows the component to adapt its appearance depending on the screen where it is displayed.

PerksScreen

PerksScreen.java hosts the standalone perk selection screen accessed from the main menu.

It initialises the screen services, loads the background texture and perk icon assets, creates the shared PerkSelectionDisplay, and configures the Continue action to return to the main menu.

PerkSelectionInputComponent

PerkSelectionInputComponent.java connects keyboard input to the perk selection interface, supporting the existing navigation and confirmation controls.

PerkService

PerkService manages the existing perk activation and deactivation rules. The visual redesign reuses this functionality rather than implementing a separate perk management system.

Available Perks

The interface displays four perks:

Perk | Progress Requirement -- | -- Shield Enhancement | Collect 5 shields Max Health | Kill 10 enemies Time Freeze | Find the tortoise Loot Drop | Spend 120 gold

Testing and Verification

The following checks were completed during implementation:

  • The project compiled successfully using ./gradlew compileJava.

  • The main-menu perk screen was launched and visually inspected.

  • The four perk icon assets were integrated into the project.

  • The redesigned death-screen perk interface was launched and visually checked.

Additional regression testing should confirm that perk progression, activation limits, keyboard navigation, and screen transitions continue to behave correctly.

Related Changes

Commit: 4d5c2d48 — Polish perk selection UI

Implementation dates: October 17–18, 2026

Expected Outcome

The redesigned Perk Selection Screen provides a consistent fantasy RPG-style experience across the main menu and in-game death screen. Improved card styling, icon integration, text readability, and selection feedback make the perk interface clearer and more visually cohesive while retaining the existing perk management functionality.

Clone this wiki locally