daid / EmptyEpsilon

Open source bridge simulator. Build with the SeriousProton engine.
https://daid.github.io/EmptyEpsilon/
GNU General Public License v2.0
533 stars 180 forks source link

REQUEST - Capacity to code other beam weapon types #241

Open oznogon opened 8 years ago

oznogon commented 8 years ago

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.

nallath commented 8 years ago

Good one. This would fit in pretty well with the new ship types that me & daid designed.

I see a lot of potential for this. Mine layers that can re position mines, repair ships, electronic warfare, tackling ships (ships designed to prevent enemy from flee-ing), etc.

daid commented 8 years ago

Yes, I like this from the "electronic warfare" perspective. I do want to have some chats with Nallath to see if we can do something for Relay with these ideas.