[2.0.32] Artillery fires more shells than necessary to kill a biter nests

Bugs that are actually features.
Dathador
Manual Inserter
Manual Inserter
Posts: 1
Joined: Mon Feb 10, 2025 7:40 am
Contact:

[2.0.32] Artillery fires more shells than necessary to kill a biter nests

Post by Dathador »

At high evolution levels (I've tested 0.998) and high artillery shell damage research levels (mine was at 9) the artillery fires two shells at one nest, despite killing it on the first nest.

the nests have 3484 health and the artillery's displayed damage with normal shells is
1.0k + 900 Physical
1.0k + 900 Explosion

It only does this if it can fire the second shell before the first shell hits, so at longer ranges.


For worms, the behavior is different. It fires one shell per worm.
User avatar
boskid
Factorio Staff
Factorio Staff
Posts: 4284
Joined: Thu Dec 14, 2017 6:56 pm
Contact:

Re: [2.0.32] Artillery fires more shells than necessary to kill a biter nests

Post by boskid »

So in your case the physical damage is 1900 and explosion is 1900. Spawner has resistances Explosion 5 and Physical 2/15%. That means the effective explosion is 1895 and effective physical is 1613.3, total damage is 3508 hit points. Spawner has 3484 health points at this evolution factor. It is indeed going to die in one hit, but before the projectile hits, it registers as having 3508 predicted incoming damage. That is 0.6% more than full health but it is less than 5% of the "overkill" fraction set for biter nests. I see that in case of a single projectile dealing enough damage to kill an entity there is no chance any type of healing could interfere with entity damage process here, but that would be some amount of extra corner cases to handle. I am going to claim this is not a bug since when second projectile is fired, it does not know that the 3508 hit points of predicted damage comes from just a single projectile and not from a pair of projectiles that would arrive at different times making entity healing to possibly heal the spawner just enough so it would survive. When you reach next level of artillery shell damage, one bullet will deal 3693.3 hit points which is 6% more than max health meaning it will be above the overkill fraction and only one projectile will be fired.
User avatar
Hares
Filter Inserter
Filter Inserter
Posts: 871
Joined: Sat Oct 22, 2022 8:05 pm
Contact:

Re: [2.0.32] Artillery fires more shells than necessary to kill a biter nests

Post by Hares »

Fulgora is the best planet. Vulcanus needs rework. Feel free to prove me wrong.
awood
Burner Inserter
Burner Inserter
Posts: 7
Joined: Thu Nov 28, 2024 4:29 pm
Contact:

Re: [2.0.32] Artillery fires more shells than necessary to kill a biter nests

Post by awood »

Since this is max evolution factor, I think it should be able to tell that it will never exceed the one-shot level. Level 9 artillery is enough to one-shot nests no matter what, but it shoots double in this specific case. The calculation with healing factor could definitely check if it's a single shot or multiple shot (allowing healing inbetween).

When you say "when second projectile is fired, it does not know that the 3508 hit points of predicted damage comes from just a single projectile and not from a pair of projectiles that would arrive at different times", that seems like something it COULD calculate since it knows the damage level of a single shot.

I know the official answer is "just upgrade one more time and it'll be past the threshold", but then that makes level 9 nearly useless for auto targeting.
I think this is solvable without too much extra logic (above), OR you could change the maximum nest health slightly...

It seems the math for health and healing factors and the selection for maximums could've been handled a little differently to avoid this case. I would actually prefer if the nest maximum was slightly higher or lower so it didn't feel like a waste here. I can understand the "middle" levels while evolution increases, but the exact maximum evolution should be at a level that doesn't cause this 'corner case'.

I think the max level decision should've considered this. (e.g. level 9 artillery isn't enough to one-shot a nest at full evolution level, like level 8 does today.. then level 10 is enough to cause a 1-shot, also above the 5% threshold). The current maximum nest health falls right inside that 5% threshold for an artillery upgrade level (and it's a common level to get to after reach max evolution), which can be avoided.
Rseding91
Factorio Staff
Factorio Staff
Posts: 16282
Joined: Wed Jun 11, 2014 5:23 am
Contact:

Re: [2.0.32] Artillery fires more shells than necessary to kill a biter nests

Post by Rseding91 »

Turrets are already incredibly over smart in their targeting, damage calculation, and ability to find and shoot at any beats or worms within their area near perfectly.

We have no interest in trying to make them even smarter/more complex.

At that point in research you have infinite resources and ammo anyway - along with a limited amount of things that they can shoot at (nests and worms respawn incredibly slowly).
If you want to get ahold of me I'm almost always on Discord.
Post Reply

Return to “Not a bug”