Repository navigation
Perk Selection Screen
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.
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.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.java connects keyboard input to the perk selection interface, supporting the existing navigation and confirmation controls.
PerkService manages the existing perk activation and deactivation rules. The visual redesign reuses this functionality rather than implementing a separate perk management system.
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 goldThe 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.
Commit: 4d5c2d48 — Polish perk selection UI
Implementation dates: October 17–18, 2026
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.