beyond-all-reason / beyond-all-reason/RecoilEngine

Weapon burstRate affects non-burst weapons and defaults to >1 frame

Open
#1,029 0 comments 0 reactions 0 assignees View on GitHub
bug good first issue
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

Open the contributing 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.