Skip to content

feat: Add nuke targeting halo visualization#88

Closed
El-Magico777 wants to merge 1 commit into
v0.2.0from
nuke-cursor-magic
Closed

feat: Add nuke targeting halo visualization#88
El-Magico777 wants to merge 1 commit into
v0.2.0from
nuke-cursor-magic

Conversation

@El-Magico777
Copy link
Copy Markdown
Collaborator

Description:

  • Targeting cursor halo: Shows blast radius while selecting nuke targets

    • White semi-transparent circles (outer dotted, inner solid)
    • Follows cursor in world space, updates on mouse move
    • Supports both Atomic Bomb (30 tiles) and Hydrogen Bomb (100 tiles)
    • Auto-hides when targeting mode cancelled
  • Flight-phase halo: Red indicator at impact point during nuke flight

    • Appears when nuke is launched, persists until detonation/interception
    • Uses same radius visualization as targeting cursor
    • Tracks multiple simultaneous nukes independently
    • Event-driven updates via GameUpdateType.Unit for performance
  • Performance optimizations:

    • Event-driven active nuke tracking (Map<id, metadata>)
    • Resize-aware canvas redraw
    • Crisp pixel rendering (imageSmoothingEnabled = false)
    • Memory leak prevention (cleanup on unit removal)
  • Architecture:

    • New NukeTargetingLayer with world-space transform support
    • Type-safe layer access via GameRenderer.getNukeTargetingLayer()
    • NukeImpactEvent emitted from FxLayer (currently unused after impact phase removal)
    • Integration with existing UIState.pendingBuildUnitType

Resolves nuke-target-halo user story requirements (AC1-AC6). Note: Post-impact fade phase was removed per user feedback; flight-phase halo only.

image image

Please complete the following:

  • I have added screenshots for all UI updates
  • I process any text displayed to the user through translateText() and I've added it to the en.json file
  • I have added relevant tests to the test directory
  • I confirm I have thoroughly tested these changes and take full responsibility for any bugs introduced
  • I understand that submitting code with bugs that could have been caught through manual testing blocks releases and new features for all contributors

Please put your Discord username so you can be contacted if a bug or regression is found:

el_magico777

- Targeting cursor halo: Shows blast radius while selecting nuke targets
  - White semi-transparent circles (outer dotted, inner solid)
  - Follows cursor in world space, updates on mouse move
  - Supports both Atomic Bomb (30 tiles) and Hydrogen Bomb (100 tiles)
  - Auto-hides when targeting mode cancelled

- Flight-phase halo: Red indicator at impact point during nuke flight
  - Appears when nuke is launched, persists until detonation/interception
  - Uses same radius visualization as targeting cursor
  - Tracks multiple simultaneous nukes independently
  - Event-driven updates via GameUpdateType.Unit for performance

- Performance optimizations:
  - Event-driven active nuke tracking (Map<id, metadata>)
  - Resize-aware canvas redraw
  - Crisp pixel rendering (imageSmoothingEnabled = false)
  - Memory leak prevention (cleanup on unit removal)

- Architecture:
  - New NukeTargetingLayer with world-space transform support
  - Type-safe layer access via GameRenderer.getNukeTargetingLayer()
  - NukeImpactEvent emitted from FxLayer (currently unused after impact phase removal)
  - Integration with existing UIState.pendingBuildUnitType

Resolves nuke-target-halo user story requirements (AC1-AC6).
Note: Post-impact fade phase was removed per user feedback; flight-phase halo only.
@El-Magico777 El-Magico777 added this to the v.0.2.0 milestone Nov 15, 2025
@El-Magico777 El-Magico777 self-assigned this Nov 15, 2025
@El-Magico777 El-Magico777 added the enhancement New feature or request label Nov 15, 2025
@El-Magico777 El-Magico777 marked this pull request as ready for review November 15, 2025 16:57
@El-Magico777
Copy link
Copy Markdown
Collaborator Author

merged

@El-Magico777 El-Magico777 modified the milestones: v0.2.0, Cancelled Feb 22, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant