this is what I wrote in a general discussion thread few minutes ago (before starting to write all this).A weapon blocks has approximately 5 dps (1/reload of a cannon block).
Power tanks can store 1000 power = 100 damage (= 20 seconds of fire), while shields can store 55 charge + 0.605 recharge during 11 seconds (= 12 seconds of defence against weapon fire) and recharges at a rate of 0.55 /second under fire
That means that with basic tanks, you should have 2 weapons per power-tank and 100 for the default 50'000 storage = 10 seconds of power, but you might use more (because of thruster drain > regeneration, thus weapons have to match that time) or more (because of energy regeneration waste).
I think it is safe to assume 3 weapon barrels per power tank which lets shield be alive for maximum damage in about 8 seconds.
OR
1 weapon barrel for 24 seconds (incl. shield regen).
But in reality you can make 4 capacitors for 1tank + 3 barrels => 11 seconds life time or 2 capacitors for 1 tank, 1 barrel => 48 seconds life time.
Ok, now another variable: 1 power reactor even when producing only 25 energy per second can supply 50 shield regenerators recharging at 0.55 per second or 0.5 barrels which are doing 2.5 dps and draining 25/second.
Now imagine the attacker has 17 barrels and 33 reactors/tanks rather than 49 shield regenerators and 1 reactor and is doing constantly 85 dps against your 27 shield regeneration
And then consider that power tank grows in efficiency, shields do not.
Attacker always has the advantage and takes between 8 and 12 seconds to bring shields down. Not regenerators make the difference, but how much dps you can deliver during your life-time.
But what if the defender shoots down turrets while being attacked? => Why would the attacker need them when they only drain power from other guns when the energy starts getting low?
Conclusions I took:
If a reactor's 25 eps supports 2.5 dps from 0.5 barrels, while 0.5 tank provides power for 1 barrels for 10 seconds, power tanks can double your damage in the 10-seconds time-frame (for equal block count).
If you do 1/2 tank, 1/2 regeneration, you have still 42..43 dps against 27 sps after you depleted your weapons (for 50 blocks).
If you do 1/2 tank, 1/2 regeneration, you have still 42..43 dps against 27 sps after you depleted your weapons (for 50 blocks).
If I didn't confuse something, defenders of equal mass live about 11 seconds and you need 3 times mass to stay alive forever.
Not included in calculation: power tank efficiency increase.
If you could calculate the average position of the shield generators with.
JavaScript:
float6 sum_extreme // p=0 + 0..2 for xyz, n=3 + 0..2 for xyz
sum_extreme.strength( Block[] blocks, boolean mode ) // blocks to add or remove
{
float3 halfSize = (float3)ship.lastBuildSize /2 // should be 1/2 of positive or 1/2 of negative side of center
// once for each of 6:
float3 x = (mode & ADD_BLOCK ? 1
: (mode & REMOVE_BLOCK ? -1
: 0) )
foreach shieldBlock in blocks
{
float3 pos3 = ((float3)ship.lastBuildModeExit.ShipCentre - (float3)shieldBlock.position) *6 /halfSize // 6 sides
(sum_extreme)this[0..2] += pos3
(sum_extreme)this[3..5] += (pos3)1- pos3
}
// alternatively you can divide through halfSize once while dividing through shieldBlockCount, but this leads to high numbers (average position number * number shield blocks)
}
float6 distribution = sum_extreme / (float6)shieldBlockCount
same for all positive/negative x, y, z
positive = in front / above/ right of centre
negative = behind / below / left of centre
Centre is the centre after leaving build mode the last time (after a change of 10% size it should update all blocks)
positive = in front / above/ right of centre
negative = behind / below / left of centre
Centre is the centre after leaving build mode the last time (after a change of 10% size it should update all blocks)
- this is the only downside and only when leaving build mode
- but could be a lazy-update background process which takes the previous or the average value while not finished calculating a new one
Now you only have to divide sum_extreme / shieldBlockCount to get how strong your shield is in each direction. It will be a value between 0 and 1 (0 and 100%)
Projectiles hit -for example- from top if (on shield impact) diff(projectile.angle - ship.angle) is closer to straight-from-top than to straight-from{ front, rear, left, right or bot }.
Looking at above conclusions I took ...
If a reactor's 25 eps supports 2.5 dps from 0.5 barrels, while 0.5 tank provides power for 1 barrels for 10 seconds, power tanks can double your damage in the 10-seconds time-frame (for equal block count).
If you do 1/2 tank, 1/2 regeneration, you have still 42..43 dps against 27 sps after you depleted your weapons (for 50 blocks).
...If you do 1/2 tank, 1/2 regeneration, you have still 42..43 dps against 27 sps after you depleted your weapons (for 50 blocks).
Results
You could now survive for about 10 seconds with equally distributed (shield's average position is centred)
OR
35 seconds if you are running away and put 7/12 shields on the back of your ship and use 5/12 for 1/12 on each side
in these 35 seconds the enemy may run out of main weapon power (stored)
Strategy will be a lot more valuable.
Docked "Shield Plates" may get value
OR
35 seconds if you are running away and put 7/12 shields on the back of your ship and use 5/12 for 1/12 on each side
in these 35 seconds the enemy may run out of main weapon power (stored)
Strategy will be a lot more valuable.
Docked "Shield Plates" may get value
- can be 6 times as efficient, but only in 1/6 directions (thus with 1/6 block count on average distribution)
- need to sink into hull to be covered against impacts from 5 directions or have no advantage thus the ship needs a bit of the 1/6 shielding for itself
- => tiny parts (may be hard to hit) will protect the plate. The plate sucks most damage.
What ya thinking? is it good or bad?
Don't hesitate to correct me where I am wrong. I like to re-think about my errors to learn for the future.
WOW, took 1.5 or 2 hours to make it that descriptive and cleaning the code...
EDIT: Do not ask if efficiency is shield value, regeneration or "shield armour / damage reduction" this are 3
options about which we can have a discussion.
Maybe I make a ingame-logic implementation of the math to prove it's not laggy in Java :D
Last edited: