beyond-all-reason / beyond-all-reason/RecoilEngine
Separate weapon range (targeting) from weapon 'length'
- Dominant language
- C++
- Stars
- 679
- Forks
- 290
- Avg merge
- 3d 2h
- Merged PRs (30d)
- 40
Description
I would like to separately define the range of a weapon and the length of its beam. This would be applicable to weapons that disappear when they hit maximum range. This tag could be used to deliberately introduce overshoot which I have found can be useful.
Hitscan rays. Would affect the length of the ray (both visual and for the actual collision check).
* LightningCannon
* BeamLaser
* Rifle
Most projectile weapons let you specify `flighttime` (or `duration` for flamethrower) to control how far they overshoot. These don't:
* LaserCannon, expires when reaching range. Perhaps just make it obey `flighttime`, though #729 may make it tricky.
* DGun, doesn't expire at all unless `noExplode`. Ideally would obey `flighttime`.
Contributor guide
Research direction
Start by tracing the implementations of LightningCannon, BeamLaser, Rifle, LaserCannon, and DGun, then compare their existing range, flighttime, duration, and noExplode handling. Done means targeting range is independently configurable from beam or projectile length, including the listed hitscan and expiring weapon cases, without breaking the interaction noted with #729.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- cpp
- Domain
- game-dev
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100