beyond-all-reason / beyond-all-reason/RecoilEngine
Weapon burstRate affects non-burst weapons and defaults to >1 frame
- Dominant language
- C++
- Stars
- 679
- Forks
- 290
- Avg merge
- 3d 2h
- Merged PRs (30d)
- 40
Description
Weapon burstRate applies a minimum delay between shots, even if the weapon has a shorter reloadtime and isn't actually a burst weapon. The default burstRate is 0.1 (ie 3 frames) which means that setting reloadtime to 0.033 or 0.066 (ie 1 or 2 frames) still makes the unit fire at 0.1s reload unless you also reduce burstRate (despite burst=1 where the burstRate shouldn't affect anything).
Reproduction:
* beamlasers aren't subject to usual burst logic (they have some `beamburst` instead) so they seem to work fine, reproduce with (say) `weaponType = 'Cannon'`.
* ZK has a gameside workaround so reproduce in a different game.
* otherwise, `burst = 1`, `reloadtime = 0.033`, leave `burstRate` undefined which sets it to 0.1.
Contributor guide
Research direction
No source file or test is named. Reproduce in a game without the ZK workaround using a Cannon with burst=1, reloadtime=0.033, and undefined burstRate, then trace the weapon firing and burst timing path. Done means non-burst weapons can fire at their reloadtime while burst weapons retain the intended burst delay.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- cpp
- Domain
- game-dev
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100