Is Barrage broken?

Ok, am I reading wrong or....

Barrage passed from "marginally useful" to " complete waste of space in the promo screen if not siege".... Cool :gripe:

More material for the _________ ( insert name ) unofficial patch to 3.17 patch, I presume... Any Idea of how to fix this? Maybe reinserting the collateral strenght change with promos ( or it becomes too OP? :dunno: )?
 
I've just done some test too.

I attacked a group of unpromoted tanks with cat, treb, cannon, arty, mobile arty.

Unpromoted siege damage to tank group
Cat 1.1
Treb 1.1
Can 1.7
Art 2.2
Mob 2.5

Barage 1 damage to tank group
Cat 1.1 - 0%
Treb 1.1 - 0%
Can 2 - 15%
Art 2.5 - 12%
Mob 2.8 - 11%

In the above group damage difference is so small that low percentages can be attributed to the rounding error.

Barage 2+1 damage
Cat 1.7 - 35%
Treb 1.7 - 35%
Can 2.5 - 32%
Art 3.4 - 35%
Mob 3.6 - 31%

Barage 3+2+1 damage
Cat 2.2 - 50%
Treb 2.2 - 50%
Can 3.4 - 50%
Art 4.5 - 51%
Mob 5 - 50%

The conclusion I can draw from this is that barage promos indeed do not stack. Barage 1 gives about 15% damage improvement, Barage 1 and 2 give about 35% damage improvement and barage 1, 2 and 3 give pretty much exactly 50% damage improvement.

I think I will go do this test again with modern armor. The larger strength should reduce the round down error.
 
I think I will go do this test again with modern armor. The larger strength should reduce the round down error.

Not quite sure what you are after here, but those numbers look as though you are measuring the change in the displayed strength of the units, which is a mildly bad idea, because that introduces more noise (see previous comments in this thread).

Look at the change in hit points - these are always (?) integers, and a little bit more true.

The easiest way to verify that the Barrage promotions stack the way that they should is to load the defending stack with units that save the same base strength as the attacking siege unit. That should give you collateral damage of 10/12/15/20 hp. The remaining variation (at least in my experiments), maps perfectly with integer rounding.
 
Barrage passed from "marginally useful" to " complete waste of space in the promo screen if not siege".... Cool :gripe:

Not quite fair - it used to be more than marginally useful. Otherwise, that appears to be correct.

As far as I can tell, there isn't a good way to fix this short of introducing a new promotion line - that means a modification to the DLL, and all the assorted artwork baggage.

If you are willing to have all tanks do collateral damage, you can introduce that change easily enough, and tune the iCollateralStrength so that the base damage is something reasonable. That's purely an XML change, so it's relatively easy to experiment with.
 
Maybe if we made Barrage I to give collateral strength unless seige ( should be only some lines of code, I think... I'm not familiar with Civ coding, but this looks like only one more if/then/else stuff..... )?

EDIT something like ( assuming Barrage I ):

If collateral strenght =0

Then use 3.13 formula to get collateral strenght

continue 3.17 code
 
Look at the change in hit points - these are always (?) integers, and a little bit more true.

True, but what I'm doing is quiker and easier and it gives you some idea of how it works. You just have to be carefull and realise that for small numbers, round down can lead to misleading result, which is why I think it is pretty safe to diregard the data from catapult with barage 1 and ditto treb.

Anyway I did the same test for modern armor, as before measuring change in unit strength.


Damage Improvement % over unpromoted unit for Barage 1, Barage 2+1, Barage 3+2+1 respectively
Cat 0%, 33%, 50%
Treb 0%, 33%, 50%
Can 17%, 29%, 50%
Art 14%, 33%, 50%
MOB 11%, 33%, 50%

Like I said barage 1 for cats and trebs can be disregarded, because of rounding error. But the conclusion stays the same, barage promos don't stack (I did make sure to select all 3 promos in WB, when doing tests with barage 3). Another conclusion for me, is that barage 1 for cats and for everything else in general is not that nice, mostly due to the way the game rounds the numbers down.
 
Just edit the XML file that says "IAmGoingToWasteAPromoForATankOnBarrage" to zero
 
Maybe if we made Barrage I to give collateral strength unless seige ( should be only some lines of code, I think... I'm not familiar with Civ coding, but this looks like only one more if/then/else stuff..... )?

The most straight forward approach there might be to modify the code in CvUnit::collateralDamage, along the lines you describe.
 
Like I said barage 1 for cats and trebs can be disregarded, because of rounding error. But the conclusion stays the same, barage promos don't stack (I did make sure to select all 3 promos in WB, when doing tests with barage 3).

Part of my problem with your approach is that it leads you to this conclusion. Perhaps the conflict is that we aren't using the same definition of "stack"?

It's very clear from code inspection that the promotions are additive, and this is born out experimentally - again, look at siege vs equally strong units, all of the numbers are exactly where you would predict them to be.

However, when the base damage isn't an even multiple of 5, then you are going to get weird effects in the rounding. 7 * 20% = 1, 7 * 50% = 3.

All of that rounding happens before the conversion of hp to strength happens, which is why using units stronger than 10hp doesn't improve your resolution.
 
BTW had someone tested Chu-no-ku so far?..... They should be working well, but.... :please:

Not I, said the cat, but they have a iCollateralDamage value in Civ4UnitInfos.xml, so I don't anticipate any problems there.
 
It's also clear to me that you are manipulating your numbers in a way that I don't understand.

Unpromoted siege damage to tank group
Mob 2.5

Barage 1 damage to tank group
Mob 2.8 - 11%

Barage 2+1 damage
Mob 3.6 - 31%

Barage 3+2+1 damage
Mob 5 - 50%

The conclusion I can draw from this is that barage promos indeed do not stack. Barage 1 gives about 15% damage improvement, Barage 1 and 2 give about 35% damage improvement and barage 1, 2 and 3 give pretty much exactly 50% damage improvement.

I don't see how you proceed from Barrage 3+2+1 doubles the damage (5 = 2x2.5), to claiming it provides 50% damage improvement.

Also, you should keep in mind with your approach that bigger numbers in the display don't necessarily improve the accuracy of the measurement. For our purposes, Modern Armor (where each hp is represented by .4 strength) is no more accurate than Knights (where each hp is represented by .1 strength). But Mech Inf (with str 32) have display rounding added to the other noise already present in the combat engine.
 
Code:
if (pCity != NULL)
{
	iModifier += pCity->getAirModifier();
}

oops--is there no check whether the unit is indeed attacked by an air unit and does this sort of stacking mean that Drill IV units in a bunker will never receive any collateral damage from artillery without barrage promotions ???

Is the new CvUnit.cpp available somewhere without patching to 3.17 ?
 
I don't see how you proceed from Barrage 3+2+1 doubles the damage (5 = 2x2.5), to claiming it provides 50% damage improvement.

Well spoted....I was dividing by the wrong number. I was dividing by the maximum damage instead of base unpromoted damage. :wallbash:

The revised results are more along the lines now of:

Mobile arty vs mobile armor (unpromoted damage, barage 1, barage 2+1, barage 3+2+1)
3.2 3.6(12%) 4.8(50%) 6.4(100%)

Ok so siege promos do stack. :crazyeye:

Also, you should keep in mind with your approach that bigger numbers in the display don't necessarily improve the accuracy of the measurement. For our purposes, Modern Armor (where each hp is represented by .4 strength) is no more accurate than Knights (where each hp is represented by .1 strength).

You mean 0.04 and 0.01 hp per strength point? In my combat log units have 100hp when healthy.
 
Hi

Wouldnt the easiest way to fix tanks be to just give them a lil col damage by themselves so if/when they do get barrage the formula kicks in?

Also are battleships affect to or do they start out with col damage on their own so wont be affected?

This glitch really fries my cheese just cuz my absolute FAVE way to war in late game is making tanks whose first two promos are CR1 with a few at combat 1 then ALL of em getting barrage 1 for second promo. So it pretty much changing how I play late game now :/.

Buit honestly even though I would MUCH rather have it so tanks could go back to using col dam if it turns out something like someone somewhere at firaxis decided tanks shouldnt be doing col damage to begin with then I it is something I COULD have accepted easier if they had documented it in list of changes AND made it so barrage promotion wont be available to units like tanks who cant even use it now :/

This is another example of a glitch slipping through that shouldnt have. I mean if you are changing code so that barage is based on native col damage of a unit then even I could figure out that any units like tanks who DONT begin with native col dam will end up not be able to use it.

It is something you wouldnt even have to play the game to see, all you would have had to do is just THINK about it for like 5 min grrrr.

Kaytie
 
THe easiest way would be

1. Calculate the Barrage Damage done based on the units Base Strength (if Base Barrage Strength+promotions >0)
2. Modify the damage based on Base Barrage Strength +Barrage promotions

so a Barrage 2 equipped Tank would use its full strength of 28 to calculate damage (say 10 hp), and Then

Base Barrage strength=0%
Barrage promotions=50%
Enemy Collateral damage avoidance=-0%

so the damage done would be 50% of calculated damage; from (3*28+D)/(3*D+28)*10
ANd only then would Barrage promotions come into play.

so
1. change how the INITIAL collateral damage is calculated... (depends on unit strength's Only, 'collateral damage characteristics' only determine if you Do it... so a Tank gives more at this step than a Mobile Artillery)
2. Calculate the ACTUAL collateral damage based on Base % + Promotions % - Enemy defense against it% (here the Damage the tank does is multiplied)

For Siege engines it would still work the same as it does in 3.17 because their base barrage value is 100%
 
THe easiest way would be

1. Calculate the Barrage Damage done based on the units Base Strength (if Base Barrage Strength+promotions >0)

Congratulations, you inadvertently buffed Cho-ko-nu (if I am correctly remembering that Chok's have a 50 in the XML file).

KaytieKat said:
Wouldnt the easiest way to fix tanks be to just give them a lil col damage by themselves so if/when they do get barrage the formula kicks in?

Well, the barrage formula is only multiplying damage now, so giving all tanks "not enough damage to notice", would allow Barrage III tanks to deliver "not enough damage to notice" (twice). Which you probably wouldn't notice (either time).
 
Hi



This glitch really fries my cheese just cuz my absolute FAVE way to war in late game is making tanks whose first two promos are CR1 with a few at combat 1 then ALL of em getting barrage 1 for second promo. So it pretty much changing how I play late game now :/.

Buit honestly even though I would MUCH rather have it so tanks could go back to using col dam if it turns out something like someone somewhere at firaxis decided tanks shouldnt be doing col damage to begin with then I it is something I COULD have accepted easier if they had documented it in list of changes AND made it so barrage promotion wont be available to units like tanks who cant even use it now :/

This is another example of a glitch slipping through that shouldnt have. I mean if you are changing code so that barage is based on native col damage of a unit then even I could figure out that any units like tanks who DONT begin with native col dam will end up not be able to use it.

It is something you wouldnt even have to play the game to see, all you would have had to do is just THINK about it for like 5 min grrrr.

Kaytie


I do the same thing late game. I am NOT amused and probably not going to D/L the patch until the savvy computers guys come up with an unofficial patch.
 
Back
Top Bottom