Here is the long awaited new explosions algorithm.
It's not yet completely balanced, and it will be modified a bit.
But all in all, it's doing what we're asking to it:
- larger max explosion radius
- the end of the explosion-going-through-hull-to-reach-SubConstructs bug

Also, in addition it has:
- dissipation effect
- blast effect

Dissipation effect:
The explosion grow from its origin point in all directions by layers using Manhattan distances.
Each time it encounters air (no block), then it loses some energy.
When a block is hit, it is either:
- destroyed
- damaged
- undamaged
A block is destroyed if there's enough energy in the explosion to destroy it.
A block is damaged if there's not enough energy to destroy it, but enough to damage it.
A block is undamaged when there's not enough energy left in the explosion to even damage it.

Blast effect:
The number of blocks encountered for one layer is divided by the number of blocks visited for that same layer, and the larger this number is, the larger the bonus.
When a block is destroyed, the explosion loses some energy (usually more than when it encounter air).
When a block is damaged only, a part of that energy lost is given back to the explosion.
When a block isn't even damaged, a part of that energy lost is given back to the explosion.
That means that creates a 'tunnel effect'.
In short, if an explosion occurs in a HA tube, then it will be more powerful and expand further away along the length of the tube.

Currently, the explosion are only half-balanced.
It is possible to modify a lot of internal variable at runtime by pressing the 'Home' key; in order to observe their impact on the explosions.
These variables are:
- maximum radius (the only one for which it is needed to restart FtD)
- Boost coefficient: the explosion energy is multiplied by this coefficient
- AC power to apply to flak: (1/AC)^<this value> is used instead of just (1/AC), which is then multiplied by the explosion power

- Air-bleed
--- Constant: a constant value is removed for each air-cell
--- Percent: a percent of the remaining energy is removed
--- Formula: a formula is applied in order to determine how much energy is removed
----- Coefficient to apply: C
----- Power to apply to the explosion energy: Pe
----- Power to apply to the explosion radius: Pr
<energy to remove %> = C * <explosion energy>^Pe / <explosion radius>^Pr

- No damage threshold: if the damages dealt to a block are less than this ratio, then the block will not be damaged
- Blast effect for damaged only blocks: the ratio of the energy lost that is given back if a block is only damaged
- Blast effect for undamaged blocks: the ratio of the energy lost that is given back if a block is hit but not damaged
- Must we sort blocks to damage?: Indicates if the blocks are damaged in the order of the algorithm, or depending on their AC*health (increasing order)

- Containement: Increase the power of the explosion depending on the number of blocks hit compared to the number of cells visited
--- None: no bonus
--- Last iteration: only the last iteration cells are taken into account
--- All iterations: all cells from the first layer are taken into account

- Simulates several hits on blocks: in some cases, a block may be visited several times because of how the explosion algorithm is propagated

Also, in the logfile there are a lot of information relative to the explosion, especially the initial energy and the number of blocks hit, damaged and destroyed.
That's very helpfully to know the exact result of an explosion.

The default values are usable, but it's probably possible to find better ones.
The important thing is to have enough information about the explosions behavior, so please, try to explode a lot of things in a lot of different ways with a lot of different weapons so that we can see what type of situation isn't balanced enough.
So guys, take your guns and destroy everything!

[edit]
I forgot, there's also a universal block data copy/paste.
When in build mode, place the cursor on a block.
Then press 'Ctrl+C'.
Then go to another block of the same type, and press 'Ctrl+V'.
That way you can copy/paste the data for the ACBs, PIDs, light, etc.

And you can copy several types of block, and then paste them, there's a copy buffer for each type of block.

There's also the BoomBlock, which is used to reproduce exactly the explosions.
It will be removed, as will the GUI used to customize the explosions.

I have just run some tests on Marauder, Plunderer, Kinstead and Stockade with three kind of guns, one with high rate of fire 180RPM/640dam HE, one with medium fire rate 27RPM/640dam HE and equivalent special ammunition (shaped, squash, frag) and last one slow 3RPM CRAM devastating HE. Algorithm on default works great, but when i cranked it to have "no damage threshold" to 33%, then it felt like real life, total awesomeness, at last heavy armor stopped feel like paper and wooden armor if thick enough gave some resistance, but was fairly realistically stripped down and later devastated. Bigger explosion radius plays very nicely to it.
In general i think, that if we give "no damage threshold" high enough level, than it will stop people from going to small explosive dakka with high ROF as good meta against high level of armor, and force them to add some more heavier, slower guns, or try to get at less armored parts of the enemy craft, or use specialized ammo, thus enhancing tactical aspect of gameplay.
I like this change a lot

(2018-01-15, 11:41 PM)dmoniks Wrote: I have just run some tests on Marauder, Plunderer, Kinstead and Stockade with three kind of guns, one with high rate of fire 180RPM/640dam HE, one with medium fire rate 27RPM/640dam HE and equivalent special ammunition (shaped, squash, frag) and last one slow 3RPM CRAM devastating HE. Algorithm on default works great, but when i cranked it to have "no damage threshold" to 33%, then it felt like real life, total awesomeness, at last heavy armor stopped feel like paper and wooden armor if thick enough gave some resistance, but was fairly realistically stripped down and later devastated. Bigger explosion radius plays very nicely to it.
In general i think, that if we give "no damage threshold" high enough level, than it will stop people from going to small explosive dakka with high ROF as good meta against high level of armor, and force them to add some more heavier, slower guns, or try to get at less armored parts of the enemy craft, or use specialized ammo, thus enhancing tactical aspect of gameplay.
I like this change a lot

It's an idea to try high no damage threshold.
Be careful of flak and smaller explosions, they should still be able to damage soft blocks.