mirror of
https://github.com/yairm210/Unciv.git
synced 2025-07-25 07:09:16 +07:00
Reworked AI war evaluation and plans (#11688)
* hasAtLeastMotivationToAttack now takes uses City.neighboringCities * Changed attack pathing to use Astar * Made the base force higher * Declare war checks for total population instead of number of cities * MotivationToAttackAutomation takes into account denunciation * Set up DeclareWarTargetAutomation.kt * Added logic for Civs to try and gang up on other Civs * Added logic for civs to try and join an ally civ in their war and to declare war directly * Added declineJoinWarOffer flag * Reduced the likelyhood of declaring war a little * Civs don't try to join wars against city-states * Removed calculating targets with 0 motivation * Relative production is not calculated against city-states * Improved getAttackPathsModifier to only calculate the best path per city * Refactored filter statements * AI now tries to execute planned wars by default * Culture Civs can now declare war, AI can declare multiple wars * AI won't gift gold to city-states that it wants to attack * Changed motivation from combat * Changed AI aggression towards city-states * Civs don't want to sign a DOF with the only nearby major civ as much * City.neighboringCities filters out cities that are not visible * Fixed some conditionals in tryJoinWar * Fixed some war plan types breaking instead of continuing * Civs are more likely to sign open borders if they haven't seen their cities * Changed far away cities to have less of a value * Fixed neighboringCities and getNeighboringCivilizations * Other fixes * Reduced motivation to attack from relative strength * Added more to motivation to attack * Added extra friendship modifiers * Moved war evaluation to WarPlanEvaluator * Added comments and re-named preparingWarPlan * AI Team wars require neutral relations to send * Added a team war notification * Added evaluation of join war trades * Tweaked MotivationToAttackAutomation * Improved peace deal offers * AI peace deals wait until 10 turns after declaring war * Made the AI declare war a little less * AI builds more military units * AI keeps at least 2 great generals to not build citadels with * AI TeamWar is more specialized for fighting stronger Civs * Removed extra line * Added more comments * Improved unit tryPrepare logic * Minor respelling and style improvements * Changed MotivationToAttackAutomation HashMap to be a list * Added a heuristic for the Astar search * TeamWarPlan focuses more on relative force and fighting stronger civs * MotivationToAttackAutomation takes into account planned wars and can target stronger civs * Added logic for AI's to request other civs to join their war * Fixed some WarDeclaration TradeEvaluation logic and reduced costs * Added some extra safety against extreme force values in DeclareWarPlanEvaluator
This commit is contained in:
@ -155,10 +155,15 @@ Denounce ([numberOfTurns] turns) =
|
||||
We will remember this. =
|
||||
|
||||
[civName] has declared war on [targetCivName]! =
|
||||
# Join War
|
||||
[civName] has joined [allyCivName] in the war against us! =
|
||||
We have joined [allyCivName] in the war against [enemyCivName]! =
|
||||
[civName] has joined [allyCivName] in the war against [enemyCivName]! =
|
||||
[civName] has joined us in the war against [enemyCivName]! =
|
||||
# Team War
|
||||
You and [allyCivName] have declared war against [enemyCivName]! =
|
||||
[civName] and [allyCivName] have declared war against us! =
|
||||
[civName] and [allyCivName] have declared war against [enemyCivName]! =
|
||||
|
||||
[civName] cancelled their Defensive Pact with [otherCivName]! =
|
||||
[civName] cancelled their Defensive Pact with us! =
|
||||
|
Reference in New Issue
Block a user