[UI/UX] Improve Combat Clarity — Buffs, Enemy Intents & Ability Readability#608
Merged
Merged
Conversation
…tion bar colors ## Summary Adds three UI clarity improvements to reduce visual noise and make critical combat information immediately parseable. ## Changes ### New: EnemyIntentPanel - scripts/ui/enemy_intent_panel.gd: Top-of-screen panel showing each enemy's planned action for the upcoming enemy turn - Refreshes at start of player turn; hidden during enemy turn - Color-coded cards: red (attack), orange (AoE), blue (move), gray (wait) - Sorted by threat level (lethal attacks first) using actual damage calc - Shows enemy name + action label ### EntityStatusBar badges - Added _badge_container with status effect badges above HP bar - Shows STN (stunned), DYING, and elite prefix badges - Color-coded: purple (stunned), crimson (dying), gold (elite) - update_badges() called on each turn start ### BottomConsole color coding - Move button: blue accent + tooltip - Attack button: red-orange accent + tooltip - End Turn button: gold accent + tooltip ### CombatRoom integration - EnemyIntentPanel instantiated in UIOverlay during _setup_hud() - _on_turn_started() refreshes intent panel on player turn, clears on enemy turn - _update_status_badges() refreshes all entity status badges each turn ### Tests - test_enemy_intent_panel.gd: 3 cases for instantiate, empty refresh, clear ## Testing - 403 tests | 0 errors | 0 failures | 75/75 suites - Headless editor scan: clean Closes #601
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Adds three UI clarity improvements to reduce visual noise and make critical combat information immediately parseable.
Problem
Players missed buffs, misread enemy behaviors, and couldn't distinguish action buttons quickly. The #4 community complaint was poor UI readability.
Changes
New: EnemyIntentPanel
scripts/ui/enemy_intent_panel.gd: Top-of-screen panel showing each enemy's planned actionEntityStatusBar badges
STN— Stunned (purple)DYING— Dying state (crimson)ELT(gold) for elite enemiesupdate_badges(entity)called every turn startBottomConsole color coding
CombatRoom integration
UIOverlayduring_setup_hud()_on_turn_started()refreshes panel on player turn, clears on enemy turn_update_status_badges()called every turn to refresh all entity badgesBehavior
ELTbadge above its HP barTechnical Notes
EnemyAIController.decide_action()— deterministic and matches actual executionCombatFormula.compute_damage_from_entities()with real cover datamouse_filter = IGNOREso it never blocks grid clicksTesting
Related Issues
Closes #601