Follow-up Comment #1, patch #3885 (project freeciv): While this seems logically correct with the assumption that we are in a city, it doesn't work so well if pcity==NULL, and would represent a significant behaviour change under those circumstances.
Previously, for defending without a city, using the classic ruleset, Battleship (16 before quadratic check) beats Mech Inf. (9 before quadratic check), and for defending with a city Mech Inf. (27 before quadratic check) beats Battleship (16 before quadratic check). With this proposed patch, Mech Inf. always beats Battleship (9 vs. 8 outside city and 27 vs. 8 inside city), which seems a bit strong. While this could be handled by wrapping the "defense /= 2;" line with a pcity check, I think the fact that the firepower multiplier is in the else clause is an attempt to handle the defender firepower reduction of BadCityDefender, with the result that the conditional should be extended to check if we're defending a city before applying the BadCityDefender penalties, granting the firepower bonus in other conditions. So, if we're willing to change behaviour anyway, we should probably grant traditional sea units a bonus if they aren't in the city, similar to how we penalise them for being in a city. The attached patch has the same behaviour as the prior patch for cities, and results in Battleship/Mech Inf. ratings outside a city of 32/9 by the same scale above (and, terrain aside, a battleship tends to be a better defender outside a city). The safety of this patch is extended in part by the need to revisit this function again to resolve the is_ground_unit() call: my prior attempts to do so have not resulted in good behaviour, which I've attributed to other issues with the AI using !is_ground_unit() units generally. (file #17849) _______________________________________________________ Additional Item Attachment: File name: badcitydefender-firepoweradjustments.patch Size:1 KB _______________________________________________________ Reply to this item at: <http://gna.org/patch/?3885> _______________________________________________ Message sent via/by Gna! http://gna.org/ _______________________________________________ Freeciv-dev mailing list Freecivemail@example.com https://mail.gna.org/listinfo/freeciv-dev