DanF5771
Emperor
- Joined
- Feb 21, 2008
- Messages
- 1,194
The modified way of taking the Barrage promotions into account in 3.17 has caused a side effect which decreases the maximum amount of damage certain units can deliver to other units compared to 3.13.
For example: A Barrage3 Battleship was able to collaterally damage another Battleship down to 40 HPs in 3.13, so it could reach its CollateralDamageLimit of 60% which is now also displayed in the Civilopedia. In 3.17 this is reduced to only 42%, regardless of how many Battleships I use and what promotions they have, a Battleship splashed by other Battleships will not lose more than 42 HPs. Considering all the funny jump-points and the 2.5-ic (quadratic-cubic) effect of HPs on the outcome of battles, I think this difference of 18 HPs is rather big, so this represents another nerf of the Barrage promotion line. I guess it is also disturbing to see the newly introduced information in the Civilopedia differ from the actual results when fighting units of equal strength (transparency).
CvUnit::collateralCombat:
The problem here is (again) the determination of iCollateralStrength and its effect on iMaxDamage, especially for units that have a native Collateral Damage < 100% (Battleship = 50%).
In 3.13 the Barrage promotions increased iCollateralStrength and thus also iMaxDamage which led to the necessary tactic to send the units with the highest promotions into the battle last...
The implementation of iMaxDamage as a function of attacker/defender strength ratio is somewhat questionable, there was quite a discussion about this already in the "Is Barrage broken?" thread. IMHO it is necessary and reflects the inability of an outdated unit to inflict serious damage to the vital components of advanced units. So a Catapult will not be able to take 50 HPs (its CollateralDamageLimit) away form a Tank but only 24 HPs as it could only scratch the Tank's armor with its boulders = RL compatible.
But then this should not decrease the maximum amount of damage a unit can inflict on another contemporary unit of the same strength (Battleship vs Battleship).
So my suggestion would be to replace
int iMaxDamage = std::min(collateralDamageLimit(), (collateralDamageLimit() * (iCollateralStrength + iStrengthFactor)) / (iTheirStrength + iStrengthFactor));
with
int iMaxDamage = std::min(collateralDamageLimit(), (collateralDamageLimit() * (((getDomainType() == DOMAIN_AIR) ? airBaseCombatStr() : baseCombatStr()) + iStrengthFactor)) / (iTheirStrength + iStrengthFactor));
{which represents another step towards my preferred approach to use iCollateralStrength = baseCombatStr() throughout the whole method
}
So in comparison with 3.13 this effectively buffs iMaxDamage for unpromoted units with native Collateral Damage < 100% and keeps the nerf of Barrage promoted units with native Collateral Damage = 100%.
What do the military and combat mechanics experts among you fellow fanatics think about that?
P.S. Solver: Could you please fix the bug of CollDmg-immunity via Drill2+ soon, I feel so guilty (and am absolutely astonished that no-one has complained about it yet). Thanks.
For example: A Barrage3 Battleship was able to collaterally damage another Battleship down to 40 HPs in 3.13, so it could reach its CollateralDamageLimit of 60% which is now also displayed in the Civilopedia. In 3.17 this is reduced to only 42%, regardless of how many Battleships I use and what promotions they have, a Battleship splashed by other Battleships will not lose more than 42 HPs. Considering all the funny jump-points and the 2.5-ic (quadratic-cubic) effect of HPs on the outcome of battles, I think this difference of 18 HPs is rather big, so this represents another nerf of the Barrage promotion line. I guess it is also disturbing to see the newly introduced information in the Civilopedia differ from the actual results when fighting units of equal strength (transparency).
CvUnit::collateralCombat:
The problem here is (again) the determination of iCollateralStrength and its effect on iMaxDamage, especially for units that have a native Collateral Damage < 100% (Battleship = 50%).
In 3.13 the Barrage promotions increased iCollateralStrength and thus also iMaxDamage which led to the necessary tactic to send the units with the highest promotions into the battle last...
The implementation of iMaxDamage as a function of attacker/defender strength ratio is somewhat questionable, there was quite a discussion about this already in the "Is Barrage broken?" thread. IMHO it is necessary and reflects the inability of an outdated unit to inflict serious damage to the vital components of advanced units. So a Catapult will not be able to take 50 HPs (its CollateralDamageLimit) away form a Tank but only 24 HPs as it could only scratch the Tank's armor with its boulders = RL compatible.
But then this should not decrease the maximum amount of damage a unit can inflict on another contemporary unit of the same strength (Battleship vs Battleship).
So my suggestion would be to replace
int iMaxDamage = std::min(collateralDamageLimit(), (collateralDamageLimit() * (iCollateralStrength + iStrengthFactor)) / (iTheirStrength + iStrengthFactor));
with
int iMaxDamage = std::min(collateralDamageLimit(), (collateralDamageLimit() * (((getDomainType() == DOMAIN_AIR) ? airBaseCombatStr() : baseCombatStr()) + iStrengthFactor)) / (iTheirStrength + iStrengthFactor));
{which represents another step towards my preferred approach to use iCollateralStrength = baseCombatStr() throughout the whole method

So in comparison with 3.13 this effectively buffs iMaxDamage for unpromoted units with native Collateral Damage < 100% and keeps the nerf of Barrage promoted units with native Collateral Damage = 100%.
What do the military and combat mechanics experts among you fellow fanatics think about that?
P.S. Solver: Could you please fix the bug of CollDmg-immunity via Drill2+ soon, I feel so guilty (and am absolutely astonished that no-one has complained about it yet). Thanks.