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

Separate weapon range (targeting) from weapon 'length'

Open
#1,348 0 comments 0 reactions 0 assignees View on GitHub
enhancement
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

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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.