-
Notifications
You must be signed in to change notification settings - Fork 0
Open
Description
Summary
- Add a ranged unit: a Skeleton Archer that shoots physical projectiles (arrows) from a bow.
- Use the SRD Skeleton stat block as the basis for attributes and defenses; attacks are ranged bow shots per SRD (no burning or magic effects).
Goals
- Server-authoritative behavior only; client is presentation.
- Ranged engagement: prefers to attack at distance, minimal melee logic.
- Deterministic projectiles and damage; respect existing perf/determinism rules.
Acceptance Criteria
- A new Undead archetype “Skeleton Archer” spawns and uses a bow-like ranged attack that fires a projectile toward targets within range.
- Projectile behaves like a physical shot (no DoT, no burn); applies damage on hit and despawns.
- AI engages at range: will stand and fire when in range and line of fire; no kiting required in v1.
- Uses SRD Skeleton stats (HP/AC/speeds/traits/resistances) and ranged attack profile. Ensure NOTICE and SRD docs are updated when stats are committed.
- Unit tests cover: projectile spawn, hit/damage application at range, snapshot correctness.
Tasks
- Data/schema
- Add an archetype entry for
SkeletonArcherunder data_runtime (stats sourced from SRD Skeleton). - Add a projectile spec for
Arrow(speed/ttl/damage) if we model arrows as projectiles distinct from spells.
- Add an archetype entry for
- Server_core
- Add
ProjKind::Arrow(or reuse Firebolt path with no burn) and specs inprojectile_spec(). - Hook Arrow into projectile integration/collision (no special AoE; single-hit segment/cylinder like Bolt).
- Add a simple ranged AI path that, when hostile and in range, enqueues an Arrow shot at its target.
- Ensure ActorSnapshot v2 continues to exclude projectiles from actors and carries Arrow in
projectiles.
- Add
- Renderer/HUD (minimal)
- No new VFX required for v1; re-use existing hit FX or add a tiny impact spark if desired.
- Ensure HUD damage/HP bars reflect server replication only.
- Tests
- Arrow hits hostile at range: spawns, steps, damages target, projectile despawns.
- Snapshot contains no lingering Arrow projectiles after hit.
Notes
- Do not copy SRD text directly into code; implement values per SRD and ensure proper attribution (NOTICE and docs/gdd/03-srd/*) when stats are added.
- If we later add a specific skeleton archer model/animation, track that in a separate asset issue and keep this issue focused on server behavior + minimal presentation.
Metadata
Metadata
Assignees
Labels
No labels