Skip to content

[Animation] Snappy, Skippable & Informative Animations#609

Merged
niyazmft merged 1 commit into
mainfrom
feat/snappy-skippable-animations
Jul 13, 2026
Merged

[Animation] Snappy, Skippable & Informative Animations#609
niyazmft merged 1 commit into
mainfrom
feat/snappy-skippable-animations

Conversation

@niyazmft

Copy link
Copy Markdown
Owner

Summary

Makes combat animations snappier and adds player controls to skip animations or slow them down for threat analysis.

Problem

Community research shows players want snappy, skippable, informative animations. Current placeholder/minimal animations were too slow (turn banner 2.3s total) or lacked feedback (no unit flash on damage, no skip option).

Changes

Snappier default durations

Element Before After
Floating damage text 1.0s 0.4s
Turn banner fade 0.3s 0.2s
Turn banner slide 0.5s 0.3s
Turn banner display 1.2s 0.6s

Skip animation (Spacebar)

  • Press Spacebar during any combat phase to instantly resolve all pending animations
  • Kills camera shake, hides turn banner, removes floating text labels, resets status bar opacity
  • Shows brief "Animations skipped" toast

Slow-motion preview (Shift during enemy turn)

  • Hold Shift during enemy turn to slow game to 0.5x speed
  • Release Shift or phase change → instant snap back to 1.0x
  • _exit_tree() guard resets time scale to prevent stuck slow-motion on scene change

Lethal screenshake

  • Enemy death now triggers 1.5x stronger camera shake than normal attacks
  • Accessibility: Respects screen_shake setting from SettingsManager (0.0 = completely disabled)

Config-driven floating text

  • CombatHUD.show_floating_text() now reads duration from feedback_config.json instead of hardcoded 1.0s

SettingsManager

  • Added get_value(category, key, fallback) convenience getter for cross-system access

Edge Cases Handled

Scenario Behavior
Player has motion sensitivity (screen_shake = 0) All shake disabled; flash-only feedback
Slow-motion + alt-tab Time scale resets to 1.0 on scene exit
Skip during turn banner fly-in Banner hides instantly; no crash
Skip with floating labels Labels removed immediately

Testing

  • 403 tests | 0 errors | 0 failures | 75/75 suites
  • Headless editor scan: clean

Related Issues

Closes #602

## Summary

Makes combat animations snappier and adds player controls to skip
animations or slow them down for threat analysis.

## Changes

### Config speedups
- config/feedback_config.json: damage_numbers duration 1.0s → 0.4s
- config/hud_config.json: turn_banner durations snappier
  - fade_duration 0.3 → 0.2, slide_duration 0.5 → 0.3
  - display_duration 1.2 → 0.6
- Added lethal screen_shake intensity (6.0) and duration (0.25)

### Skip animation (Spacebar)
- _skip_animations() in CombatRoom: kills camera shake, hides turn banner,
  removes floating text labels, resets status bar opacity
- Bound to Spacebar in _unhandled_input() during any combat phase

### Slow-motion preview (Shift during enemy turn)
- _process() checks if Shift is held during ENEMY_TURN
- Sets Engine.time_scale = 0.5; resets to 1.0 on release or phase change
- _exit_tree() resets time_scale to prevent stuck slow-motion

### Lethal screenshake
- _on_entity_state_changed(): stronger camera shake (1.5x) on enemy death
- trigger_camera_shake(): respects accessibility screen_shake setting
  from SettingsManager (0.0 = disabled)

### Floating text snappiness
- CombatHUD.show_floating_text(): reads duration from feedback_config
  instead of hardcoded 1.0s

### SettingsManager
- Added get_value(category, key, fallback) convenience getter

## Testing

- 403 tests | 0 errors | 0 failures | 75/75 suites
- Headless editor scan: clean

Closes #602
@niyazmft
niyazmft merged commit 6b01165 into main Jul 13, 2026
5 checks passed
@niyazmft
niyazmft deleted the feat/snappy-skippable-animations branch July 13, 2026 16:19
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Animation] Ensure Snappy, Skippable & Informative Animations (VIS-ANIM-1)

1 participant