daid / daid/EmptyEpsilon

REQUEST - Capacity to code other beam weapon types

Open
#241 2 comments 3 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Lua
Stars
869
Forks
222
Avg merge
18h 33m
Merged PRs (30d)
1

Description

Beam weapons are hardcoded to have only one effect (energy damage). It'd be nice to have other effects available, such as EMP-like beams that deal damage only to shields, or sustained beams that fire continuously at a target while in range instead of discrete shots on an interval.

Also, non-damage utility beams could allow ships to fill support roles. Tractor beams could tow a disabled ship or slow a target, interdiction beams could temporarily disable a target's warp/jump drives, repair and coolant beams could aid in damage control, or refueling beams could transfer energy between ships. (See also #205 for allowing beams to target friendlies.)

The beam weapon code isn't designed to allow for new damage types or effects. The effect is hardcoded to DT_Energy and beam effects are always instantaneous. To simulate a sustained effect, beams have to be set to very fast fire rates (an effect that doesn't look good on screen or work smoothly on clients).

I'm not sure of the best way to implement this. I added a beam_type parameter and used it to implement a tractor beam using similar physics as the black hole, but the result is too rough for use.

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by locating the beam weapon code and reviewing the linked beam_type and tractor-beam commits. Define the supported beam effects, including their targeting and duration behavior, then verify that each requested effect works smoothly for clients and does not depend on excessively fast firing intervals.

Written by the indexing model from the issue text.

Assessment

Tech stack
lua
Domain
game-dev
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.