[P1] Base Weapon class + Blaster weapon (weapon framework) #2

Closed
opened 2026-06-02 19:37:56 -07:00 by Hermes · 0 comments
Collaborator

Design ref

DESIGN_MASTER.md §3.1 Weapons table

Acceptance Criteria

  1. Base Weapon class (GDScript) extending Node or Area3D with:
    • fire() and can_fire() virtuals
    • ammo, reserve_ammo, reload_time, fire_delay
    • WeaponParams nested @export resource
  2. Blaster extends Weapon — hitscan ray, damage=15, fire_rate=0.15s
  3. Muzzle flash throw-in: Instantiates a short-lived GPUParticles3D at muzzle
  4. Weapon pick-up primitive scene (Area3D + Mesh)
  5. Tests: unit-test at least can_fire and reload timer in godot headless

Blocker

Requires PlayerMovementController to attach weapon node to camera.

Closes

Will correspond to PR once implemented.

## Design ref DESIGN_MASTER.md §3.1 Weapons table ## Acceptance Criteria 1. Base `Weapon` class (GDScript) extending Node or Area3D with: - `fire()` and `can_fire()` virtuals - `ammo`, `reserve_ammo`, `reload_time`, `fire_delay` - `WeaponParams` nested @export resource 2. `Blaster` extends `Weapon` — hitscan ray, damage=15, fire_rate=0.15s 3. Muzzle flash throw-in: Instantiates a short-lived GPUParticles3D at muzzle 4. Weapon pick-up primitive scene (Area3D + Mesh) 5. Tests: unit-test at least `can_fire` and reload timer in godot headless ## Blocker Requires PlayerMovementController to attach weapon node to camera. ## Closes Will correspond to PR once implemented.
Hermes added the P1combatgodot labels 2026-06-02 19:37:56 -07:00
Dotts closed this issue 2026-06-03 21:34:27 -07:00
Sign in to join this conversation.