-
Notifications
You must be signed in to change notification settings - Fork 2
Create RFC-Projectile-Submunition-additions-changes #58
Conversation
I believe all these would be covered by the following idea that I have written down:
(My ideas file is basically just me jotting down stuff that pops into my head, so if anything seems incoherent or confusing then just ask and I'll expand upon what I was thinking.) Under my idea, "emitter" is what you call "spawning".
I'm not really sure on the usefulness of these. If I want a single projectile to repeat itself four times, why not just extend the initial projectile's lifetime by four? If the intention is to have a projectile that repeats itself but also creates other projectiles every time it repeats, I believe that's covered by the above concepts (e.g. instead of repeating four times, just emit four times over the lifetime of the projectile).
This seems like the most complex idea here to me. To have a moving zone of damage, the weapon/projectile would need to be damaging in rings, whereas normal AoE is just a circle. Hazards are capable of damaging within rings, so projectiles would be capable of making use of the collision detection for damaging in a ring, but this would be an entirely separate concept from what's discussed above. And not only would projectiles need to be able to deal AoE damage in rings, but the game would also need to keep track of how far along the "explosion" has progressed, whereas currently explosions are all single frame events.
|
Yea, definitely seems like they could all be worked in from there. :D
That would still run into the issue of the initial projectile carrying all submunition damage if intercepted early, but "emitter" with right options would still be able to fulfil that role as well.
Yea, that would generally handle it, I think.
As long as the "emitter" can have velocity still, this should be possible under it as well. Just have it moving between each emit.
The expanding ring you talk about here could certainly be done better alongside other basic shape definitions if/as that type of thing is added, but "emitter" should still be able to duplicate it better than current submunitions shenanigans. Really does seem like "emitter" handles just about all of these, and "penetration" seems pretty much solved too. :) |
I got excited enough thinking about the possibilities of this that I went ahead and created a branch with the features I described (even though I wasn't planning on being the one to tackle it): https://github.com/Amazinite/endless-sky/tree/projectile-emission Using the linked branch, the following outfit is a weapon that deploys "Lances" that track onto targets for 10 seconds before exploding, firing two "Energy Blaster" six times in rapid succession before reloading (i.e. using burst behavior) for a total of 600/10*2 = 300 projectiles emitted over a "Lance's" lifetime. These "Energy Blasters" fire the entire time the "Lance" is alive (i.e. it doesn't wait to actually a target something in range of the "Energy Blasters"). Because of
Creating temporary fighters was the one big idea that got me worked up enough to write this up so quick, but I'm sure there are plenty of other ideas that these three new features could be used for. |
I keep wanting to play around with this to show examples here of stuff I mentioned, but honestly I'm a bit confused how to install/play from a branch instead of just copying data over, which I don't think will work for this one with the code changes? |
How about a "sticky" attribute for these? So that new submunitions are generated from the target ship that was hit by the "sticky" one? |
Feature: This RFC is to discuss potential/future changes and additions to projectile and submunition behavior.
I'm going to go ahead and list a few different things I can think of having seen discussed, but the creation of this RFC was prompted specifically by curiosity about weapons creating lasting zones of damage, akin to common spell effects like firewall or blizzard.
List can be expanded/trimmed as we figure out how feasible certain behaviors are with what changes or as new suggestions come up.
Names are descriptive place holders, not any kind of stone set mandate.
In general, even where already possible with submunitions, I think we could benefit from base access to them, to reduce repetitive strings of dozens (or even hundreds) of submunitions, for both creation ease and performance issues.
Feature Details
Pulse AoE- repetitive damage in area, like repeat explosions. Offsets or inaccuracy could change point of origin, and individual explosions need not be same size as zone they spawn within. This is blizzard when using both of those modifications.
Continuous AoE - constant, consistent damage in area (though drop off over time would still be a potential modification), dealt on initial entry as well as at regular times. This is firewall.
AoE Wave - a moving zone of damage that is not stopped by collision. Preferably an attribute that could make either of the above mobile instead of static.
Piercing - a projectile that can pierce X number of targets/frames/whatever measure. Good for hitting multiple ships and/or the same ship multiple times.
Repeat - A projectile that repeats itself X times. A shortcut for looped submunitions that (hopefully) will also avoid the problem of all submunitions in a looped chain going off when enemy is hit early. Modifications could include allowing repeat from initial origin or projectile's current location.
Repeat End - A projectile that spawns at the end of a repeat chain. A shortcut for specific change after a submunition loop.
Charge - projectile that only fires X frames after firing input, preferably from current location of ship or parent projectile.
Spawn - creates a submunition after X frames without current projectile dying
Spawning - creates a submunition -every- X frames without current projectile dying
Sticky - new submunitions are generated from the target ship that was hit by the "sticky" one
Usage Examples
TBD
Performance Impact
TBD