I've re-done the spawning system in the script system to allow for spawning of new particles in those following events:
Firing (before you could only spawn one type of particle, in one direction, now you can add any particles you want, with custom data for each particle invidiually)
Update (If you want a bullet to emit laser beams for some reason while it's traveling, you can do so now!)
Hitting something (Missiles could create a shockwave particle on impact for example)
Being hit (shield could reflect an incoming beam which means it have to stop the current particle, and create a new particle that's on the reflected angle)
Delay between particles and particles living more than one turn haven't been implemented yet, but they won't be too difficult to add, compared to what I just did in revamping the spawning system.
I tested the basic laser beam (making it spawn 10 beams in a wide beam), and it worked correctly:
However, the shield script wasn't stopping the beam as it should. I investigated and found that I didn't do something in the shield script file correctly, and fixed that. Not the game code, but the script code. I then tested it with a small ship:
I decided to be silly and make it 50 beams wide, and added two more victims. You can see the shadows cast by the small ships from the huge beam:
Now, if you have a beam that does 100 damage, and is 20 pixels wide, you might want to split that into 4 particles, with each doing 25 damage (100/4). Or you can just have each particle do 100 damage as a result of the mount multiplying the damage as it is spread out. Or whatever you want to do, it's your script. It's pretty flexible in what you want to do.
Now that the weapon particles are mostly done, I'll leave it for now, and focus on ship scripting (taking damage, dying, etc).