46 lines
1.5 KiB
Markdown
46 lines
1.5 KiB
Markdown
# E1.M4 — AbilityInputScaffold
|
|
|
|
## Summary
|
|
|
|
| Field | Value |
|
|
|--------|--------|
|
|
| **Module ID** | E1.M4 |
|
|
| **Epic** | [Epic 1 — Core Player Runtime](../epics/epic_01_core_player_runtime.md) |
|
|
| **Stage target** | Prototype |
|
|
| **Status** | Planned (see [dependency register](module_dependency_register.md)) |
|
|
|
|
## Purpose
|
|
|
|
Hotbar bindings, cooldown slot UI hooks, and the client/input path that issues `AbilityCastRequest` into [E5.M1 — CombatRulesEngine](E5_M1_CombatRulesEngine.md), using targeting from [E1.M3](E1_M3_InteractionAndTargetingLayer.md).
|
|
|
|
## Responsibilities
|
|
|
|
- Map hotbar slots to abilities and emit `AbilityCastRequest` with validation hints.
|
|
- Surface `HotbarLoadout` and `CooldownSnapshot` for UI sync.
|
|
|
|
## Key contracts
|
|
|
|
| Contract | Role |
|
|
|----------|------|
|
|
| `AbilityCastRequest` | Intent sent to combat resolution. |
|
|
| `HotbarLoadout` | Bound abilities per slot. |
|
|
| `CooldownSnapshot` | Client/server-visible cooldown state for UI. |
|
|
|
|
## Module dependencies
|
|
|
|
- **E1.M3** — InteractionAndTargetingLayer: target lock and cast validity.
|
|
- **E5.M1** — CombatRulesEngine: authoritative accept/deny of casts.
|
|
|
|
## Dependents (by design)
|
|
|
|
- Consumed by UX and telemetry; combat engine remains the authority.
|
|
|
|
## Related implementation slices
|
|
|
|
Epic 1 **Slice 3** — `ability_cast_requested`, `ability_cast_denied` with reason codes.
|
|
|
|
## Source anchors
|
|
|
|
- Master plan: [`neon_sprawl_vision.plan.md`](../../../neon_sprawl_vision.plan.md) — Epic 1.
|
|
- [Module dependency register](module_dependency_register.md)
|