Hello everyone I'm back again to drop another absurdly long post on the forum. The largest yet! The file is 60 Kb of Pure Text, beating the previous record holder; Re-Re-Thinking Ideas which was a downright puny 27 kb by more than double!
This time, I'm talking about a subject very dear to me; Diplomacy.
I will state this right out; EUIV actually has a very good Diplomacy AI, probably one of the best in the entire game industry. It is not without its flaws, however overall the system is incredibly dynamic and AI countries are generally pretty good at figuring out what is in their best interest.
However after examining the files for my own modding efforts, and in particular in an attempt to make Coalition Membership a bit more sensible as I will definitely agree it is currently not, I have come up with a decent sized list of things I don't like.
So here is that list along with my recommendations. I'm going to start off with a general complaint, which is really more of a request for a specific script hook, and then I'll look at each Attitude individually, note what I feel is wrong with it, and provide an overview of how to fix it. I will also be providing an updated bit of code for each Attitude with the modifications that are currently possible and the ones I want to make commented out.
At the Bottom are the files I have already modified, and I'll drop a download link here too. I would very much like it if anyone who tries this out reports their findings. A lot of the numbers are ones I have arrived at arbitrarily and this will likely need a Shite Tonne of Balancing Work.
We need a "has_ai_attitude" Trigger
This may already exist, as the EUIV Wiki does list an "attitude" condition, however it is unsorted and does not describe the syntax of the command. My attempts to figure out the syntax did not appear to work, so I am assuming it is not intended for this purpose.
There is a "set_ai_attitude" event effect, which I have seen used precisely once; to set the ai_attitude of a country to Friendly towards the Netherlands when they rebel.
Quite frankly, we need a way to detect what attitude a country has towards another. Not only will this radically expand the diplomatic events we can introduce and provide useful MTTH modifiers to events like the border dispute event to make it less likely to happen to countries you are friendly with, it will mean we can introduce a bit of reciprocity into the Attitude System itself. Having a Friendly attitude with another country should provide a small boost to their weight on being Friendly towards you. Not enough to completely override their situation, but enough that it will give the AI, and the Players, another way of interacting with each other.
Ideally, I would use the following.
Changes to Individual Attitudes
So here are the changes that I would make to the existing attitudes. And at the end I will detail the two new Attitudes I have created. I will cover each attitude in the order they appear in the ai_attitudes.txt file.
attitude_human
....The Human Attitude. This is the attitude that the Player Country is hard locked into always having and was introduced in a patch as a response to player's complaints about the AI choosing their attitude for them and selecting nonsensical attitudes and thus breaking alliances and doing other silly things.
So what's Wrong with it?
THE FACT THAT IT EXISTS IN THE FIRST PLACE!
I will never for the life of me understand why Paradox introduced this attitude. Yes, the fact that the AI was choosing our Country's Attitudes for us was a problem, but the solution to that problem was to Give Us Control, not remove us from the system entirely.
The AI already has enough trouble "reading" the player because we don't have numbers to direct our goals that the AI can look at. And so Paradox went and removed the one thing that Players did still have that the AI could look at and get an idea of our goals from.
Now the Player is even more of a shapeless unknowable mass, some eldritch horror that the AI cannot comprehend, and while we'll never have an AI that can truly understand how the Human mind works, the least we can do is give a way for the AI to look at our actual goals.
There was a problem, I won't deny that, but Paradox chose the absolute worst possible method of handling it short of ignoring it entirely.
So How do we Fix it?
Put the Player country back into the Attitude System, just let us control the Attitude. Plop a Pull Down Menu into the Diplomacy Interface that lets us choose our Attitude towards a country.
Now there would need to be other changes to accommodate this, but it won't actually require anything fancy like a trigger entry. Just make it so if the AI weight for an Attitude is 0, the player cannot select it. The only time this is true is in Hard Lock cases like for the Overlord/Vassal Attitudes. Hostile/Neutral/Friendly would always be available between countries except in the case of the Vassal Situation.
Some Attitudes would be automatically adopted depending on what you do. Selecting a country as a Rival for instance will lock you into the Rivalry Attitude until you remove them from your Rival List. Joining a Coalition will put you into the Outraged Attitude. In the event you fall under a Union or become a Vassal it will automatically give you the Vassal attitude but you will be able to select Hostile whenever you want.
Now there will be one other set of changes that need to be made, namely the introduction of a system to prevent or discourage the player from "lying" to the AI while providing certain incentives to choose fitting attitudes. Something that would prevent the Player from selecting "Friendly" as their Attitude and then declaring war the next day, but which could also give them bonuses if they choose an appropriate attitude for what they are doing.
First, Some attitudes would prevent or penalize certain actions. Personally, I think having the "Friendly" attitude should outright prevent you from declaring war on another country, but if that's too strong for people, move the "Good Relations" stability hit from Opinion to Attitude. You declare war on someone you had the Friendly or Cordial attitude with? -2 Stability and +4 War exhaustion plus some AE for good measure and kiss your Trust goodbye.
On the other hand, we can provide certain bonuses to having an attitude towards a country. For instance, having the Threatened attitude towards a country can provide a small Morale Boost that scales with the difference in strength between the two countries. Small little Albania will be Threatened by the Big Scary Ottomans, and because of the massive difference in power will receive a considerable Morale Boost. However if your countries are about the same strength the Morale boost will shrink to nothing, and you will instead get a constant Prestige Drain, growing to a large prestige Drain if you are actually stronger than them.
Likewise, being Outraged, IE in a Coalition, will provide a similar boost to Morale and Manpower Recovery, again, one that scales with the strength difference.
I'll talk more about what specific bonuses/penalties I feel Attitudes should have.
In addition to those bonuses and penalties, we can work the changing of Attitudes into a system that currently exists as pretty much just window dressing; Trust. The Trust system is horribly under-utilized at the moment, being something that you just gradually build up simply by existing. Trust should be heavily involved in the Attitude System, and should be gained by maintaining consistent Attitudes, in addition to honoring calls to arms, not breaking truces, stuff like that. And it should be lost by changing your Attitude, with the magnitude of the change determining how much you lose and with who. Going from Friendly to Neutral will lose you a bit of trust with that country. Going from Friendly to Hostile, should lose you a lot of trust with not only that country, but all of the other countries you are "Friendly" with, much like how Claiming a Throne damages your relations with countries you have a Royal Marriage with.
And this wouldn't just help the AI. Players have been asking, practically begging, for something, anything that we can use to communicate our goals to the AI since the first bloody version of this game. Attitude is the perfect system to use for that. It can even be incorporated into the Call to Arms system. Flagging a country as Friendly will be a way of telling your allies "We won't fight these guys", so they won't issue you the call to arms.
Likewise, by letting the Player control their country's Attitude towards another, that means we'll give the Player control of the Opinion Bonuses and Penalties associated with certain Attitudes. So now the Player will be able to choose the Hostile Attitude towards the Pope and pass the Popery Act. And if we get the Attitude Detection script hook we can modify the decision to be based on Attitude and have the Popery Act automatically removed if your Attitude shifts back to Friendly.
Furthermore, by providing actual gameplay bonuses to certain attitudes we can help balance smaller countries against larger ones, and provide a natural and dynamic method of strengthening Coalitions that Isn't dependent on arbitrarily constricting your Peace Options or just cramming the Coalition full of major powers.
Now then, on to the other Attitudes themselves and how I would change them;
attitude_neutral
attitude_hostile
attitude_rivalry
If you Got a Problem with Coalitions, Here's To You
attitude_outraged
attitude_cordial
attitude_friendly
attitude_protective
attitude_vassal
attitude_overlord
attitude_dominating
attitude_threatened
The Two New Attitudes I am adding
So those are my changes to the Existing Attitudes. Here are the two Attitudes I suggest adding.
attitude_EnemyOfEnemy
attitude_Benefactor
Conclusion
So that's it. For now at least. I am still investigating certain possibilities and running some games to see what attitudes are chosen by what situations. Speaking of which, I have a download link to the current system I have created below, and I would be very interested to hear from anyone who wants to run their own tests.
Attitude Problem 6-24-2014
Now I'm goin' ta bed.
G'night.
This time, I'm talking about a subject very dear to me; Diplomacy.
I will state this right out; EUIV actually has a very good Diplomacy AI, probably one of the best in the entire game industry. It is not without its flaws, however overall the system is incredibly dynamic and AI countries are generally pretty good at figuring out what is in their best interest.
However after examining the files for my own modding efforts, and in particular in an attempt to make Coalition Membership a bit more sensible as I will definitely agree it is currently not, I have come up with a decent sized list of things I don't like.
So here is that list along with my recommendations. I'm going to start off with a general complaint, which is really more of a request for a specific script hook, and then I'll look at each Attitude individually, note what I feel is wrong with it, and provide an overview of how to fix it. I will also be providing an updated bit of code for each Attitude with the modifications that are currently possible and the ones I want to make commented out.
At the Bottom are the files I have already modified, and I'll drop a download link here too. I would very much like it if anyone who tries this out reports their findings. A lot of the numbers are ones I have arrived at arbitrarily and this will likely need a Shite Tonne of Balancing Work.
We need a "has_ai_attitude" Trigger
This may already exist, as the EUIV Wiki does list an "attitude" condition, however it is unsorted and does not describe the syntax of the command. My attempts to figure out the syntax did not appear to work, so I am assuming it is not intended for this purpose.
There is a "set_ai_attitude" event effect, which I have seen used precisely once; to set the ai_attitude of a country to Friendly towards the Netherlands when they rebel.
Quite frankly, we need a way to detect what attitude a country has towards another. Not only will this radically expand the diplomatic events we can introduce and provide useful MTTH modifiers to events like the border dispute event to make it less likely to happen to countries you are friendly with, it will mean we can introduce a bit of reciprocity into the Attitude System itself. Having a Friendly attitude with another country should provide a small boost to their weight on being Friendly towards you. Not enough to completely override their situation, but enough that it will give the AI, and the Players, another way of interacting with each other.
Ideally, I would use the following.
Code:
has_ai_attitude = {
who = FROM
value = attitude_friendly
}
Changes to Individual Attitudes
So here are the changes that I would make to the existing attitudes. And at the end I will detail the two new Attitudes I have created. I will cover each attitude in the order they appear in the ai_attitudes.txt file.
attitude_human
....The Human Attitude. This is the attitude that the Player Country is hard locked into always having and was introduced in a patch as a response to player's complaints about the AI choosing their attitude for them and selecting nonsensical attitudes and thus breaking alliances and doing other silly things.
So what's Wrong with it?
THE FACT THAT IT EXISTS IN THE FIRST PLACE!
I will never for the life of me understand why Paradox introduced this attitude. Yes, the fact that the AI was choosing our Country's Attitudes for us was a problem, but the solution to that problem was to Give Us Control, not remove us from the system entirely.
The AI already has enough trouble "reading" the player because we don't have numbers to direct our goals that the AI can look at. And so Paradox went and removed the one thing that Players did still have that the AI could look at and get an idea of our goals from.
Now the Player is even more of a shapeless unknowable mass, some eldritch horror that the AI cannot comprehend, and while we'll never have an AI that can truly understand how the Human mind works, the least we can do is give a way for the AI to look at our actual goals.
There was a problem, I won't deny that, but Paradox chose the absolute worst possible method of handling it short of ignoring it entirely.
So How do we Fix it?
Put the Player country back into the Attitude System, just let us control the Attitude. Plop a Pull Down Menu into the Diplomacy Interface that lets us choose our Attitude towards a country.
Now there would need to be other changes to accommodate this, but it won't actually require anything fancy like a trigger entry. Just make it so if the AI weight for an Attitude is 0, the player cannot select it. The only time this is true is in Hard Lock cases like for the Overlord/Vassal Attitudes. Hostile/Neutral/Friendly would always be available between countries except in the case of the Vassal Situation.
Some Attitudes would be automatically adopted depending on what you do. Selecting a country as a Rival for instance will lock you into the Rivalry Attitude until you remove them from your Rival List. Joining a Coalition will put you into the Outraged Attitude. In the event you fall under a Union or become a Vassal it will automatically give you the Vassal attitude but you will be able to select Hostile whenever you want.
Now there will be one other set of changes that need to be made, namely the introduction of a system to prevent or discourage the player from "lying" to the AI while providing certain incentives to choose fitting attitudes. Something that would prevent the Player from selecting "Friendly" as their Attitude and then declaring war the next day, but which could also give them bonuses if they choose an appropriate attitude for what they are doing.
First, Some attitudes would prevent or penalize certain actions. Personally, I think having the "Friendly" attitude should outright prevent you from declaring war on another country, but if that's too strong for people, move the "Good Relations" stability hit from Opinion to Attitude. You declare war on someone you had the Friendly or Cordial attitude with? -2 Stability and +4 War exhaustion plus some AE for good measure and kiss your Trust goodbye.
On the other hand, we can provide certain bonuses to having an attitude towards a country. For instance, having the Threatened attitude towards a country can provide a small Morale Boost that scales with the difference in strength between the two countries. Small little Albania will be Threatened by the Big Scary Ottomans, and because of the massive difference in power will receive a considerable Morale Boost. However if your countries are about the same strength the Morale boost will shrink to nothing, and you will instead get a constant Prestige Drain, growing to a large prestige Drain if you are actually stronger than them.
Likewise, being Outraged, IE in a Coalition, will provide a similar boost to Morale and Manpower Recovery, again, one that scales with the strength difference.
I'll talk more about what specific bonuses/penalties I feel Attitudes should have.
In addition to those bonuses and penalties, we can work the changing of Attitudes into a system that currently exists as pretty much just window dressing; Trust. The Trust system is horribly under-utilized at the moment, being something that you just gradually build up simply by existing. Trust should be heavily involved in the Attitude System, and should be gained by maintaining consistent Attitudes, in addition to honoring calls to arms, not breaking truces, stuff like that. And it should be lost by changing your Attitude, with the magnitude of the change determining how much you lose and with who. Going from Friendly to Neutral will lose you a bit of trust with that country. Going from Friendly to Hostile, should lose you a lot of trust with not only that country, but all of the other countries you are "Friendly" with, much like how Claiming a Throne damages your relations with countries you have a Royal Marriage with.
And this wouldn't just help the AI. Players have been asking, practically begging, for something, anything that we can use to communicate our goals to the AI since the first bloody version of this game. Attitude is the perfect system to use for that. It can even be incorporated into the Call to Arms system. Flagging a country as Friendly will be a way of telling your allies "We won't fight these guys", so they won't issue you the call to arms.
Likewise, by letting the Player control their country's Attitude towards another, that means we'll give the Player control of the Opinion Bonuses and Penalties associated with certain Attitudes. So now the Player will be able to choose the Hostile Attitude towards the Pope and pass the Popery Act. And if we get the Attitude Detection script hook we can modify the decision to be based on Attitude and have the Popery Act automatically removed if your Attitude shifts back to Friendly.
Furthermore, by providing actual gameplay bonuses to certain attitudes we can help balance smaller countries against larger ones, and provide a natural and dynamic method of strengthening Coalitions that Isn't dependent on arbitrarily constricting your Peace Options or just cramming the Coalition full of major powers.
Now then, on to the other Attitudes themselves and how I would change them;
attitude_neutral
The Neutral Attitude.... Not much to say about it. It's Neutral.
So what's Wrong with it?
There isn't really anything truly wrong with it, but I have made some slight modifications.
So How do we Fix it?
Well, I added Distance Calculations. Countries who are very far away from each other will naturally be neutral to each other. I expanded the Hard Lock Overrides to include any relation between the two countries, and also to look at the distance between the FROM Country and subjects of the ROOT country. You won't be able to conquer a continent by Vassals and keep everyone on that continent Neutral to you.
In Particular, this should help prevent you from getting World Spanning Coalitions unless you are yourself a World Spanning Empire.
The Neutral Attitude should not provide any benefits, but if you declare war on a country you have the Neutral Attitude towards you should gain 2 War Exhaustion immediately.
"Why are we fighting them again? I don't even know who they are..."
So what's Wrong with it?
There isn't really anything truly wrong with it, but I have made some slight modifications.
So How do we Fix it?
Well, I added Distance Calculations. Countries who are very far away from each other will naturally be neutral to each other. I expanded the Hard Lock Overrides to include any relation between the two countries, and also to look at the distance between the FROM Country and subjects of the ROOT country. You won't be able to conquer a continent by Vassals and keep everyone on that continent Neutral to you.
In Particular, this should help prevent you from getting World Spanning Coalitions unless you are yourself a World Spanning Empire.
The Neutral Attitude should not provide any benefits, but if you declare war on a country you have the Neutral Attitude towards you should gain 2 War Exhaustion immediately.
"Why are we fighting them again? I don't even know who they are..."
Code:
# Neutral - not really interested in diplomacy/war
attitude_neutral = {
icon = 2
antagonize = no
annex = no
weaken = no
coalition = no
warn = no
vassalize = no
ally = no
befriend = no
protect = no
threat = no
ignore = yes
chance = {
factor = 50
#Hard Locks
#They own a Province that is connected to us by claim/core/culture/etc
modifier = { factor = 0.0
OR = {
FROM = { any_owned_province = { is_claim = ROOT } }
FROM = { any_owned_province = { is_core = ROOT } }
FROM = { any_owned_province = { accepted_culture = ROOT } }
FROM = { any_owned_province = { primary_culture = ROOT } }
FROM = { any_owned_province = { culture_group = ROOT } }
FROM = { any_owned_province = { religion = ROOT } }
}
}
#They have Relations with us or border one of our subjects
modifier = { factor = 0.0
OR = {
overlord_of = FROM
is_subject_of = FROM
alliance_with = FROM
senior_union_with = FROM
junior_union_with = FROM
is_rival = FROM
marriage_with = FROM
FROM = { any_neighbor_country = { is_subject_of = ROOT } }
FROM = { any_neighbor_country = { alliance_with = ROOT } }
FROM = { any_neighbor_country = { senior_union_with = ROOT } }
FROM = { any_neighbor_country = { junior_union_with = ROOT } }
}
}
#Distance Modifiers - FROM to ROOT
modifier = { factor = 5.0 border_distance = { who = FROM distance = 2000 } }
modifier = { factor = 2.5 border_distance = { who = FROM distance = 1500 } }
modifier = { factor = 2.5 border_distance = { who = FROM distance = 1000 } }
modifier = { factor = 1.5 border_distance = { who = FROM distance = 800 } }
#Distance Modifiers - FROM to ROOT Subjects
modifier = { factor = 0.5 any_known_country = { is_subject_of = ROOT NOT = { border_distance = { who = FROM distance = 800 } } } }
modifier = { factor = 0.5 any_known_country = { is_subject_of = ROOT NOT = { border_distance = { who = FROM distance = 400 } } } }
modifier = { factor = 0.5 any_known_country = { is_subject_of = ROOT NOT = { border_distance = { who = FROM distance = 200 } } } }
#Distance Modifiers - ROOT to FROM Subjects
modifier = { factor = 0.5 any_known_country = { is_subject_of = FROM NOT = { border_distance = { who = ROOT distance = 800 } } } }
modifier = { factor = 0.5 any_known_country = { is_subject_of = FROM NOT = { border_distance = { who = ROOT distance = 400 } } } }
modifier = { factor = 0.5 any_known_country = { is_subject_of = FROM NOT = { border_distance = { who = ROOT distance = 200 } } } }
#AI Logic
modifier = { factor = 0.5
OR = {
threat = { who = FROM value = 100 }
befriend = { who = FROM value = 100 }
antagonize = { who = FROM value = 100 }
vassalize = { who = FROM value = 100 }
protect = { who = FROM value = 100 }
}
}
modifier = { factor = 0.5
OR = {
threat = { who = FROM value = 200 }
befriend = { who = FROM value = 200 }
antagonize = { who = FROM value = 200 }
vassalize = { who = FROM value = 200 }
protect = { who = FROM value = 200 }
}
}
}
}
attitude_hostile
The Hostile Attitude indicates that they don't like you any more than that weird alien in Star Wars liked Luke and they want to conquer your provinces so you better hack off their arm because that's a totally reasonable response to a guy punching someone. It is also used to determine when an AI Subject will seek independence, that's why it has all those Colonial Nation checks and Liberty Desire Checks.
So what's Wrong with it?
Nothing Actually, I don't mind it. It could probably be a bit more nuanced, but then again it probably is and its just that the Nuance is in The Engine and thus hidden from my view.
So How do we Fix it?
We Don't? Yeah this Attitude is pretty good. I suppose we could have more checks for how Vassals behave, but those checks are already largely in the Vassal Attitude.
So what tangible effects should this have? Well, a Morale Boost when fighting a Nation with this Attitude for one. Other than that, I would say nothing. The Hostile Attitude should not provide much, you should still have to Work for your Conquest. It should provide a heavy mutual Opinion Penalty, and switching to this from another attitude should reduce the FROM Nation's Trust in you. If you switch to this from Friendly it should reduce the Trust of all Nations with you.
So what's Wrong with it?
Nothing Actually, I don't mind it. It could probably be a bit more nuanced, but then again it probably is and its just that the Nuance is in The Engine and thus hidden from my view.
So How do we Fix it?
We Don't? Yeah this Attitude is pretty good. I suppose we could have more checks for how Vassals behave, but those checks are already largely in the Vassal Attitude.
So what tangible effects should this have? Well, a Morale Boost when fighting a Nation with this Attitude for one. Other than that, I would say nothing. The Hostile Attitude should not provide much, you should still have to Work for your Conquest. It should provide a heavy mutual Opinion Penalty, and switching to this from another attitude should reduce the FROM Nation's Trust in you. If you switch to this from Friendly it should reduce the Trust of all Nations with you.
Code:
# Hostile - desires conquest
attitude_hostile = {
icon = 3
antagonize = yes
annex = yes
weaken = no
coalition = no
warn = yes
vassalize = no
ally = no
befriend = no
protect = no
threat = no
ignore = no
chance = {
factor = 100
#Hard Locks
#Colonial Nations Independence
modifier = { factor = 2.0 is_colonial_nation = yes liberty_desire = 0.5 }
modifier = { factor = 2.0 is_colonial_nation = yes liberty_desire = 0.6 }
modifier = { factor = 5.0 is_colonial_nation = yes liberty_desire = 0.7 }
modifier = { factor = 25 is_colonial_nation = yes liberty_desire = 0.8 }
modifier = { factor = 100 is_colonial_nation = yes liberty_desire = 0.9 } #SCREW YOUR TEA
#AI Personality
modifier = { factor = 1.5 personality = ai_militarist }
#Diplomatic Situation
modifier = { factor = 0.5 alliance_with = FROM }
#Military Strength Concerns
modifier = { factor = 1.5 military_strength = { who = FROM value = 2.0 } }
modifier = { factor = 1.5 military_strength = { who = FROM value = 1.5 } }
modifier = { factor = 0.5 NOT = { military_strength = { who = FROM value = 0.75 } } }
modifier = { factor = 0.5 NOT = { military_strength = { who = FROM value = 0.50 } } }
modifier = { factor = 0.5 NOT = { military_strength = { who = FROM value = 0.25 } } }
#AI Logic
modifier = { factor = 2.0 antagonize = { who = FROM value = 400 } }
modifier = { factor = 2.0 antagonize = { who = FROM value = 300 } }
modifier = { factor = 2.0 antagonize = { who = FROM value = 200 } }
modifier = { factor = 0.5 NOT = { antagonize = { who = FROM value = 100 } } }
modifier = { factor = 0.0 NOT = { antagonize = { who = FROM value = 25 } } NOT = { AND = { is_colonial_nation = yes liberty_desire = 0.5 } } }
modifier = { factor = 0 protectorate = { who = FROM value = 100 } }
modifier = { factor = 0 vassalize = { who = FROM value = 100 } }
#Opinion
modifier = { factor = 2.0 NOT = { has_opinion = { who = FROM value = -199 } } }
modifier = { factor = 2.0 NOT = { has_opinion = { who = FROM value = -150 } } }
modifier = { factor = 2.0 NOT = { has_opinion = { who = FROM value = -100 } } }
modifier = { factor = 2.0 NOT = { has_opinion = { who = FROM value = -50 } } }
modifier = { factor = 2.0 NOT = { has_opinion = { who = FROM value = 0 } } }
modifier = { factor = 0.5 has_opinion = { who = FROM value = 50 } }
modifier = { factor = 0.5 has_opinion = { who = FROM value = 75 } }
modifier = { factor = 0.5 has_opinion = { who = FROM value = 100 } }
modifier = { factor = 0.5 has_opinion = { who = FROM value = 125 } }
modifier = { factor = 0.5 has_opinion = { who = FROM value = 150 } }
modifier = { factor = 0.5 has_opinion = { who = FROM value = 175 } }
modifier = { factor = 0.5 has_opinion = { who = FROM value = 200 } }
}
}
attitude_rivalry
The Rivalry Attitude is not a full Attitude like the others, all of the Logic is actually in The Engine and this Attitude is only chosen by an AI if they select a country as a Rival. The single line of Code is a check to make the AI chance 0 if the FROM country is not a Rival of ROOT.
So what's Wrong with it?
All of the Rivalry Selection code is in the Engine and thus I cannot Modify it? Yeah there's nothing really I can do with this which is kind of annoying, but what are you gonna do. I suppose I could actually modify it so the AI could select this attitude even for countries it has not selected as a Rival, and that could be interesting as I do think the 3 country limit is pretty damn arbitrary, but I don't know what sort of unintended side effects this could have. To be fair, with the 3 country limit and the new strict rules about appropriate rivals the game needs more complex calculations than are realistically possible in the Attitude Files.
So How do we Fix it?
There's really not much to fix, as this Attitude doesn't have any actual logic in it, all of the Rivalry Selection Logic is in the Engine. I suppose I can talk about what bonuses Rivalry Attitude should have?
Well, there's already Power Projection. I think Declaring War on your Rival should provide a slight Morale Boost when fighting them. Maybe a small Manpower Recovery Boost. Oh yeah, this Attitude should only be available and should be automatically selected for any country you select as your Rival, obviously, and as it currently works for the AI. It should still provide a major mutual Opinion Penalty, allowing you to actively worsen your relations with another country, again, really only important for the Popery Act I mentioned above.
Actually this right here is a pretty good place to talk about how this Attitude System would be a good place to relocate AI code that is currently in the Engine which would allow us to greatly open up the scripting potential of The AI. In particular, with respect to Attitudes, Veritas et Fortitudo has already started creating unique Attitudes for different Nations, and I think that is an absolutely brilliant method of scripting historical strategies without hard coding the AI into those strategies.
This is an area of game development with a lot of potential for really cool things. If we could port the AI Logic that goes into selecting Rivals to this block we could do a lot of cool things. For instance, we could create our own dynamic Historical Friend checks. So if you maintain an alliance for 3 centuries in game we could provide an Opinion Modifier via event. This could then be checked for in the Attitude Logic.
We could also, if the Attitudes had an "Effect" block that could scope to the ROOT or FROM countries, we could provide scriptable bonuses for our unique Attitudes. We could provide a serious Morale or Defensiveness Boost to Albania via an "Albanian Resistance" attitude. We could create a "Protestant League" attitude for Protestant HRE states targeting a Catholic Emperor that gives considerable Morale Boosts to make the Reformation more interesting.
There's a lot of potential in this system that is sadly unrealized at this point.
So what's Wrong with it?
All of the Rivalry Selection code is in the Engine and thus I cannot Modify it? Yeah there's nothing really I can do with this which is kind of annoying, but what are you gonna do. I suppose I could actually modify it so the AI could select this attitude even for countries it has not selected as a Rival, and that could be interesting as I do think the 3 country limit is pretty damn arbitrary, but I don't know what sort of unintended side effects this could have. To be fair, with the 3 country limit and the new strict rules about appropriate rivals the game needs more complex calculations than are realistically possible in the Attitude Files.
So How do we Fix it?
There's really not much to fix, as this Attitude doesn't have any actual logic in it, all of the Rivalry Selection Logic is in the Engine. I suppose I can talk about what bonuses Rivalry Attitude should have?
Well, there's already Power Projection. I think Declaring War on your Rival should provide a slight Morale Boost when fighting them. Maybe a small Manpower Recovery Boost. Oh yeah, this Attitude should only be available and should be automatically selected for any country you select as your Rival, obviously, and as it currently works for the AI. It should still provide a major mutual Opinion Penalty, allowing you to actively worsen your relations with another country, again, really only important for the Popery Act I mentioned above.
Actually this right here is a pretty good place to talk about how this Attitude System would be a good place to relocate AI code that is currently in the Engine which would allow us to greatly open up the scripting potential of The AI. In particular, with respect to Attitudes, Veritas et Fortitudo has already started creating unique Attitudes for different Nations, and I think that is an absolutely brilliant method of scripting historical strategies without hard coding the AI into those strategies.
This is an area of game development with a lot of potential for really cool things. If we could port the AI Logic that goes into selecting Rivals to this block we could do a lot of cool things. For instance, we could create our own dynamic Historical Friend checks. So if you maintain an alliance for 3 centuries in game we could provide an Opinion Modifier via event. This could then be checked for in the Attitude Logic.
We could also, if the Attitudes had an "Effect" block that could scope to the ROOT or FROM countries, we could provide scriptable bonuses for our unique Attitudes. We could provide a serious Morale or Defensiveness Boost to Albania via an "Albanian Resistance" attitude. We could create a "Protestant League" attitude for Protestant HRE states targeting a Catholic Emperor that gives considerable Morale Boosts to make the Reformation more interesting.
There's a lot of potential in this system that is sadly unrealized at this point.
If you Got a Problem with Coalitions, Here's To You
attitude_outraged
Oh Man, the first of the Attitudes (other than attitude_human) I have a serious Problem with!
The Outraged Attitude is how the AI selects when to join into a Coalition against a country. It is thus the Attitude that is most commonly noticed by The Players as they tend to get Coalitions against them, like a lot.
So what's Wrong with it?
Everything. Not really, but the major problem with this attitude is a flaw in the fundamental concept behind it; The major problem is that it's too damn dependent on Aggressive Expansion!
This Attitude is almost completely based on AE when in reality it should be far more based on Threat and a comparison between the Army Sizes of the two countries. There is currently a token effort to represent threat, but no effort at all to compare sizes, which is why you get things like France entering into a Coalition against the Palatinate for annexing Mainz.
So How do we Fix it?
First off, we make Threat far more important. AE is still important, but at the lower levels, up until -200, I reduced the impact by a lot. Threat is always a considerable factor, and I added checks for Threat above 400, which provides huge bonuses to this Attitude.
I Left in the Hard Lock which prevents this attitude if the country has 0 AE, primarily because if I didn't it led to every country bordering the Ming entering a Coalition and just completely wrecking them in the first decade of the game. The same thing happened to Burgundy and I can't have that, if Burgundy gets destroyed what will I (Austria) Inherit?!? On the other hand, I also added a check to Threat, such that if a country's Threat level is below 50 they Will Not join a Coalition against that country. This means you Can in fact play as a "Gentle Giant" who everyone regards as a Threat but, because you aren't actually expanding at all, does not enter into a Coalition. It also means you won't need to worry about countries in parts of the world you have no presence in joining a Coalition just because enough AE Bled out to them.
Next, I added a block that compares Army Strength, so countries with vastly larger armies will not join coalitions against their weaker neighbours. I added a third Hard Lock, if the Army Strength of ROOT is 1.5 times greater than the Army Strength of FROM, then ROOT will not join a coalition.
Lastly, I added a block of checks dealing with the HRE specifically. HRE countries are more likely to join Coalitions in general, but this is especially true if FROM holds non-core HRE Territory, and that is more than doubly so if FROM is a non-HRE country Or The Emperor.
The Outraged Attitude is how the AI selects when to join into a Coalition against a country. It is thus the Attitude that is most commonly noticed by The Players as they tend to get Coalitions against them, like a lot.
So what's Wrong with it?
Everything. Not really, but the major problem with this attitude is a flaw in the fundamental concept behind it; The major problem is that it's too damn dependent on Aggressive Expansion!
This Attitude is almost completely based on AE when in reality it should be far more based on Threat and a comparison between the Army Sizes of the two countries. There is currently a token effort to represent threat, but no effort at all to compare sizes, which is why you get things like France entering into a Coalition against the Palatinate for annexing Mainz.
So How do we Fix it?
First off, we make Threat far more important. AE is still important, but at the lower levels, up until -200, I reduced the impact by a lot. Threat is always a considerable factor, and I added checks for Threat above 400, which provides huge bonuses to this Attitude.
I Left in the Hard Lock which prevents this attitude if the country has 0 AE, primarily because if I didn't it led to every country bordering the Ming entering a Coalition and just completely wrecking them in the first decade of the game. The same thing happened to Burgundy and I can't have that, if Burgundy gets destroyed what will I (Austria) Inherit?!? On the other hand, I also added a check to Threat, such that if a country's Threat level is below 50 they Will Not join a Coalition against that country. This means you Can in fact play as a "Gentle Giant" who everyone regards as a Threat but, because you aren't actually expanding at all, does not enter into a Coalition. It also means you won't need to worry about countries in parts of the world you have no presence in joining a Coalition just because enough AE Bled out to them.
Next, I added a block that compares Army Strength, so countries with vastly larger armies will not join coalitions against their weaker neighbours. I added a third Hard Lock, if the Army Strength of ROOT is 1.5 times greater than the Army Strength of FROM, then ROOT will not join a coalition.
Lastly, I added a block of checks dealing with the HRE specifically. HRE countries are more likely to join Coalitions in general, but this is especially true if FROM holds non-core HRE Territory, and that is more than doubly so if FROM is a non-HRE country Or The Emperor.
Code:
# Outraged - wants to prevent expansion
attitude_outraged = {
icon = 5
antagonize = yes
annex = no
weaken = yes
coalition = yes
warn = yes
vassalize = no
ally = no
befriend = no
protect = no
threat = yes
ignore = no
chance = {
factor = 100
#Hard Locks
modifier = { factor = 0 OR = { overlord_of = from is_subject_of = from } }
modifier = { factor = 0 is_rival = FROM } #JC.... That don't actually Lock...
#AE
modifier = { factor = 2.0 NOT = { has_opinion_modifier = { modifier = aggressive_expansion who = FROM value = -900 } } }
modifier = { factor = 2.0 NOT = { has_opinion_modifier = { modifier = aggressive_expansion who = FROM value = -800 } } }
modifier = { factor = 2.0 NOT = { has_opinion_modifier = { modifier = aggressive_expansion who = FROM value = -700 } } }
modifier = { factor = 2.0 NOT = { has_opinion_modifier = { modifier = aggressive_expansion who = FROM value = -600 } } }
modifier = { factor = 2.0 NOT = { has_opinion_modifier = { modifier = aggressive_expansion who = FROM value = -500 } } }
modifier = { factor = 1.5 NOT = { has_opinion_modifier = { modifier = aggressive_expansion who = FROM value = -400 } } }
modifier = { factor = 1.5 NOT = { has_opinion_modifier = { modifier = aggressive_expansion who = FROM value = -300 } } }
modifier = { factor = 1.5 NOT = { has_opinion_modifier = { modifier = aggressive_expansion who = FROM value = -200 } } }
modifier = { factor = 1.2 NOT = { has_opinion_modifier = { modifier = aggressive_expansion who = FROM value = -100 } } }
modifier = { factor = 1.2 NOT = { has_opinion_modifier = { modifier = aggressive_expansion who = FROM value = -75 } } }
modifier = { factor = 1.2 NOT = { has_opinion_modifier = { modifier = aggressive_expansion who = FROM value = -50 } } }
modifier = { factor = 0.5 has_opinion_modifier = { modifier = aggressive_expansion who = FROM value = -40 } NOT = { coalition_target = FROM } }
modifier = { factor = 0.5 has_opinion_modifier = { modifier = aggressive_expansion who = FROM value = -30 } NOT = { coalition_target = FROM } }
modifier = { factor = 0.5 has_opinion_modifier = { modifier = aggressive_expansion who = FROM value = -20 } NOT = { coalition_target = FROM } }
modifier = { factor = 0.5 has_opinion_modifier = { modifier = aggressive_expansion who = FROM value = -10 } NOT = { coalition_target = FROM } }
modifier = { factor = 0 NOT = { has_opinion_modifier = { modifier = aggressive_expansion who = FROM } } }
#AI Logic
modifier = { factor = 20.0 threat = { who = FROM value = 900 } }
modifier = { factor = 10.0 threat = { who = FROM value = 800 } }
modifier = { factor = 5.0 threat = { who = FROM value = 700 } }
modifier = { factor = 5.0 threat = { who = FROM value = 600 } }
modifier = { factor = 5.0 threat = { who = FROM value = 500 } }
modifier = { factor = 3.0 threat = { who = FROM value = 400 } }
modifier = { factor = 3.0 threat = { who = FROM value = 300 } }
modifier = { factor = 2.0 threat = { who = FROM value = 200 } }
modifier = { factor = 2.0 threat = { who = FROM value = 400 } }
modifier = { factor = 0.5 NOT = { threat = { who = FROM value = 100 } } }
modifier = { factor = 0.5 NOT = { threat = { who = FROM value = 75 } } }
modifier = { factor = 0.0 NOT = { threat = { who = FROM value = 50 } } }
#Opinion
modifier = { factor = 1.5 NOT = { has_opinion = { who = FROM value = -199 } } }
modifier = { factor = 1.5 NOT = { has_opinion = { who = FROM value = -150 } } }
modifier = { factor = 1.5 NOT = { has_opinion = { who = FROM value = -110 } } }
modifier = { factor = 1.5 NOT = { has_opinion = { who = FROM value = -50 } } }
modifier = { factor = 0 has_opinion = { who = FROM value = 0 } NOT = { coalition_target = FROM } }
modifier = { factor = 0 has_opinion = { who = FROM value = 50 } }
#Military Strength Concerns
modifier = { factor = 0.0 military_strength = { who = FROM value = 1.5 } }
modifier = { factor = 1.5 NOT = { military_strength = { who = FROM value = 0.75 } } }
modifier = { factor = 2.0 NOT = { military_strength = { who = FROM value = 0.50 } } }
modifier = { factor = 2.5 NOT = { military_strength = { who = FROM value = 0.25 } } }
modifier = { factor = 5.0 NOT = { military_strength = { who = FROM value = 0.10 } } }
#Holy Roman Empire
modifier = { factor = 1.5 capital_scope = { is_part_of_hre = yes } }
modifier = { factor = 1.5 capital_scope = { is_part_of_hre = yes } FROM = { capital_scope = { is_part_of_hre = no } } }
modifier = { factor = 1.5 capital_scope = { is_part_of_hre = yes } FROM = { is_emperor = yes } }
modifier = { factor = 2.0 capital_scope = { is_part_of_hre = yes } FROM = { any_owned_province = { is_part_of_hre = yes NOT = { is_core = FROM } } } }
modifier = { factor = 2.5 capital_scope = { is_part_of_hre = yes } FROM = { any_owned_province = { is_part_of_hre = yes NOT = { is_core = FROM } } capital_scope = { is_part_of_hre = no } } }
modifier = { factor = 2.5 capital_scope = { is_part_of_hre = yes } FROM = { any_owned_province = { is_part_of_hre = yes NOT = { is_core = FROM } } is_emperor = yes } }
#MISC
modifier = { factor = 1.5 is_neighbor_of = FROM }
}
}
attitude_cordial
Cordial Attitude means they want to be your friend. I think. One would assume this would be the purview of the "Friendly" Attitude, and, it actually is, as that is where all the checks for the "befriend" AI Logic are located. In truth, looking into the code It appears that Cordial is the "We are Allies" attitude as not having an Alliance will disable it.
So what's Wrong with it?
It might be completely redundant? I'm not sure what the actual goal of the Cordial Attitude is, as it seems be purely an Ally Specific version of Friendly....but Friendly has a chance boost if there is an Alliance....And Cordial has Ally=no. Curiously, it is also disabled if they Want to Befriend you, Is Cordial the Attitude for countries that are already Friends? Wouldn't the AI befriend Logic still be positive if you are currently friends as a way of telling the AI to Stay Friends?
So How do we Fix it?
I don't know what I'm supposed to be fixing...
So what's Wrong with it?
It might be completely redundant? I'm not sure what the actual goal of the Cordial Attitude is, as it seems be purely an Ally Specific version of Friendly....but Friendly has a chance boost if there is an Alliance....And Cordial has Ally=no. Curiously, it is also disabled if they Want to Befriend you, Is Cordial the Attitude for countries that are already Friends? Wouldn't the AI befriend Logic still be positive if you are currently friends as a way of telling the AI to Stay Friends?
So How do we Fix it?
I don't know what I'm supposed to be fixing...
attitude_friendly
Friendly Attitude means they want to be your friend. Wait, didn't I already say that?
Seriously what is supposed to be the difference between Friendly and Cordial?
So what's Wrong with it?
It seems fine, although this is probably where we would put our major Reciprocity check, so Friendly Nations would be likely to get other nations to select Friendly towards them.
So How do we Fix it?
Not really anything to Fix. The Code that I want to add isn't possible at this point because we just don't have the script hook for it.
Seriously what is supposed to be the difference between Friendly and Cordial?
So what's Wrong with it?
It seems fine, although this is probably where we would put our major Reciprocity check, so Friendly Nations would be likely to get other nations to select Friendly towards them.
So How do we Fix it?
Not really anything to Fix. The Code that I want to add isn't possible at this point because we just don't have the script hook for it.
attitude_protective
Oh Man, it's the other Attitude I have a major problem with.
Protective is the Attitude chosen when an AI country has another smaller country they want to protect....
So what's Wrong with it?
...Or So it Says at the top, but this Attitude is Lying its damn Pants off. Protect may check for the "Protect" AI Logic, but the Attitude cannot be selected unless the Ai also wants to Vassalize the Country, so Really this Attitude is only about "Protecting" another country until you can successfully eat them. Now that's fine, there's nothing wrong with that, and in truth, most of the time a Large country "Protected" a smaller country it was just because they wanted to maintain their own influence. But...
There's already an "attitude_dominating" entry later in the file.
So Protect is effectively pulling double duty and ignoring its more useful objective; telling the AI how to stop other country's Expansion. The end Result is that, using my latest game as an Example, AI France was completely incapable of realizing that it should guarantee the independence of the small Imperial States bordering me. Because it did not plan to vassalize them, it just sat there regarding them with a "neutral" attitude while they desperately pleaded with France for Protection. That's Bad.
And here's where we get into one of my major problems with the current Attitude Logic from a conceptual standpoint, a problem with is exemplified by the failings of the Protective Attitude. If we were to remove the Hard Lock preventing this attitude from being chosen when the country does not have an interest in vassalizing the target, there would still be one major problem with the Attitude Logic, a problem which might be resolved in the underlying code that goes into the "Protect" AI Logic, but which might not;
The Attitudes only ever take into account ROOT and FROM.
That might not seem like a big deal with Attitudes like Hostile and Friendly, but it is a major failing for Protective.
Because if Large Country A is Protecting Small Country B, there's a third country involved in that equation; Large Country C that is menacing Small Country B.
When you get right down to it, The Relationship between Country A and Country B is not really dependent on how A and B see each other, it is based far more on how A and C see each other. Do you think the USA would give any solitary damns about Ukraine if Russia weren't breathing down their neck? Do you think France kept allying with Bavaria because they liked their beer? Or did they do it to spite Austria? The Protective Attitude's failure to capture that dynamic, again unless this all goes down under the hood in The Engine in which case the AI in game is not working properly, is one of the great failings of the Attitude System and the single biggest thing preventing the AI from understanding the concept of Soft Power and country containment.
So How do we Fix it?
Well first off we get rid of that silly check that disables this attitude if the country doesn't want to vassalize the target. Protecting a country because you want to vassalize it will be handled by the Dominating Attitude. Next, we add a series of checks to Third Party countries to see how they feel about the FROM Country. In this case, I limited my checks to Rivals, using the handy dandy "is_rival = ROOT" check.
Here is where the "has_ai_attitude" check and incorporating The Player into the Attitude system will help immensely, as right now I have to make do with the very limited checks I have available for the AI Logic. This means that either I code Human-Specific conditions to double the Value of a country the small AI country feels threatened by, or just deal with the fact that Countries The Player is targeting will only ever be able to get half the Protect Weight as AI Countries being menaced by other AI Countries. This is also a problem because the AI does assign those AI Logic values to the Player country, so the AI will be treating the player like an AI country that would expand like the AI wants, rather than a Player that is doing whatever he pleases. In my case, the AI will probably be making friends with Imperial States while I inherit England and establish a Naval Empire.
Either way, its just not a good way of doing it, as it leads to the Player being disconnected, however slightly, from the system.
Also I made the AI Attitude less likely if the FROM Country is around the same strength as the ROOT Country (and impossible if the FROM Country is stronger) and made it vastly less likely if FROM is a Rival of ROOT.
When it comes to Tangible Effects, having a Protective Attitude towards a country should reduce the AE you incur with that country for taking provinces from countries it feels threatened by unless it also feels threatened by you. Switching from Protective to Hostile or Dominating should cause a major Trust Penalty to the Target Country and a minor one for all of the small countries near it.
Protective is the Attitude chosen when an AI country has another smaller country they want to protect....
So what's Wrong with it?
...Or So it Says at the top, but this Attitude is Lying its damn Pants off. Protect may check for the "Protect" AI Logic, but the Attitude cannot be selected unless the Ai also wants to Vassalize the Country, so Really this Attitude is only about "Protecting" another country until you can successfully eat them. Now that's fine, there's nothing wrong with that, and in truth, most of the time a Large country "Protected" a smaller country it was just because they wanted to maintain their own influence. But...
There's already an "attitude_dominating" entry later in the file.
So Protect is effectively pulling double duty and ignoring its more useful objective; telling the AI how to stop other country's Expansion. The end Result is that, using my latest game as an Example, AI France was completely incapable of realizing that it should guarantee the independence of the small Imperial States bordering me. Because it did not plan to vassalize them, it just sat there regarding them with a "neutral" attitude while they desperately pleaded with France for Protection. That's Bad.
And here's where we get into one of my major problems with the current Attitude Logic from a conceptual standpoint, a problem with is exemplified by the failings of the Protective Attitude. If we were to remove the Hard Lock preventing this attitude from being chosen when the country does not have an interest in vassalizing the target, there would still be one major problem with the Attitude Logic, a problem which might be resolved in the underlying code that goes into the "Protect" AI Logic, but which might not;
The Attitudes only ever take into account ROOT and FROM.
That might not seem like a big deal with Attitudes like Hostile and Friendly, but it is a major failing for Protective.
Because if Large Country A is Protecting Small Country B, there's a third country involved in that equation; Large Country C that is menacing Small Country B.
When you get right down to it, The Relationship between Country A and Country B is not really dependent on how A and B see each other, it is based far more on how A and C see each other. Do you think the USA would give any solitary damns about Ukraine if Russia weren't breathing down their neck? Do you think France kept allying with Bavaria because they liked their beer? Or did they do it to spite Austria? The Protective Attitude's failure to capture that dynamic, again unless this all goes down under the hood in The Engine in which case the AI in game is not working properly, is one of the great failings of the Attitude System and the single biggest thing preventing the AI from understanding the concept of Soft Power and country containment.
So How do we Fix it?
Well first off we get rid of that silly check that disables this attitude if the country doesn't want to vassalize the target. Protecting a country because you want to vassalize it will be handled by the Dominating Attitude. Next, we add a series of checks to Third Party countries to see how they feel about the FROM Country. In this case, I limited my checks to Rivals, using the handy dandy "is_rival = ROOT" check.
Here is where the "has_ai_attitude" check and incorporating The Player into the Attitude system will help immensely, as right now I have to make do with the very limited checks I have available for the AI Logic. This means that either I code Human-Specific conditions to double the Value of a country the small AI country feels threatened by, or just deal with the fact that Countries The Player is targeting will only ever be able to get half the Protect Weight as AI Countries being menaced by other AI Countries. This is also a problem because the AI does assign those AI Logic values to the Player country, so the AI will be treating the player like an AI country that would expand like the AI wants, rather than a Player that is doing whatever he pleases. In my case, the AI will probably be making friends with Imperial States while I inherit England and establish a Naval Empire.
Either way, its just not a good way of doing it, as it leads to the Player being disconnected, however slightly, from the system.
Also I made the AI Attitude less likely if the FROM Country is around the same strength as the ROOT Country (and impossible if the FROM Country is stronger) and made it vastly less likely if FROM is a Rival of ROOT.
When it comes to Tangible Effects, having a Protective Attitude towards a country should reduce the AE you incur with that country for taking provinces from countries it feels threatened by unless it also feels threatened by you. Switching from Protective to Hostile or Dominating should cause a major Trust Penalty to the Target Country and a minor one for all of the small countries near it.
Code:
# Protective - wants to defend
attitude_protective = {
icon = 8
antagonize = no
annex = no
weaken = no
coalition = no
warn = no
vassalize = yes
ally = yes
befriend = yes
protect = yes
threat = no
ignore = no
chance = {
factor = 100
#Hard Locks
modifier = { factor = 0 OR = { overlord_of = from is_subject_of = from } }
modifier = { factor = 0 FROM = { is_subject = yes } }
#AI Personality
modifier = { factor = 1.5 personality = ai_diplomat }
#Diplomacy
modifier = { factor = 0.2 is_rival = FROM }
modifier = { factor = 0.2 FROM = { is_rival = ROOT } }
#AI Logic
modifier = { factor = 1.5 protect = { who = FROM value = 400 } }
modifier = { factor = 1.5 protect = { who = FROM value = 300 } }
modifier = { factor = 1.5 protect = { who = FROM value = 200 } }
modifier = { factor = 1.5 protect = { who = FROM value = 100 } }
modifier = { factor = 0.5 NOT = { protect = { who = FROM value = 80 } } }
modifier = { factor = 0.0 NOT = { protect = { who = FROM value = 50 } } }
modifier = { factor = 1.2 vassalize = { who = FROM value = 400 } }
modifier = { factor = 1.2 vassalize = { who = FROM value = 300 } }
modifier = { factor = 1.2 vassalize = { who = FROM value = 200 } }
modifier = { factor = 1.2 vassalize = { who = FROM value = 100 } }
modifier = { factor = 1.2 protectorate = { who = FROM value = 400 } }
modifier = { factor = 1.2 protectorate = { who = FROM value = 300 } }
modifier = { factor = 1.2 protectorate = { who = FROM value = 200 } }
modifier = { factor = 1.2 protectorate = { who = FROM value = 100 } }
modifier = { factor = 0.0 antagonize = { who = FROM value = 50 } }
#Soft Power - Rivals
modifier = { factor = 1.5 any_known_country = { is_rival = ROOT vassalize = { who = FROM value = 400 } } }
modifier = { factor = 1.5 any_known_country = { is_rival = ROOT vassalize = { who = FROM value = 300 } } }
modifier = { factor = 1.5 any_known_country = { is_rival = ROOT vassalize = { who = FROM value = 200 } } }
modifier = { factor = 1.5 any_known_country = { is_rival = ROOT vassalize = { who = FROM value = 100 } } }
modifier = { factor = 1.5 any_known_country = { is_rival = ROOT protectorate = { who = FROM value = 400 } } }
modifier = { factor = 1.5 any_known_country = { is_rival = ROOT protectorate = { who = FROM value = 300 } } }
modifier = { factor = 1.5 any_known_country = { is_rival = ROOT protectorate = { who = FROM value = 200 } } }
modifier = { factor = 1.5 any_known_country = { is_rival = ROOT protectorate = { who = FROM value = 100 } } }
modifier = { factor = 1.5 any_known_country = { is_rival = ROOT antagonize = { who = FROM value = 400 } } }
modifier = { factor = 1.5 any_known_country = { is_rival = ROOT antagonize = { who = FROM value = 300 } } }
modifier = { factor = 1.5 any_known_country = { is_rival = ROOT antagonize = { who = FROM value = 200 } } }
modifier = { factor = 1.5 any_known_country = { is_rival = ROOT antagonize = { who = FROM value = 100 } } }
modifier = { factor = 2.0 any_known_country = { is_rival = ROOT FROM = { threat = { who = PREV value = 600 } } } }
modifier = { factor = 2.0 any_known_country = { is_rival = ROOT FROM = { threat = { who = PREV value = 500 } } } }
modifier = { factor = 2.0 any_known_country = { is_rival = ROOT FROM = { threat = { who = PREV value = 400 } } } }
modifier = { factor = 1.5 any_known_country = { is_rival = ROOT FROM = { threat = { who = PREV value = 300 } } } }
modifier = { factor = 1.5 any_known_country = { is_rival = ROOT FROM = { threat = { who = PREV value = 200 } } } }
modifier = { factor = 1.5 any_known_country = { is_rival = ROOT FROM = { threat = { who = PREV value = 100 } } } }
#Military Strength Concerns
modifier = { factor = 5.0 military_strength = { who = FROM value = 5.00 } }
modifier = { factor = 2.5 military_strength = { who = FROM value = 2.50 } }
modifier = { factor = 2.5 military_strength = { who = FROM value = 2.00 } }
modifier = { factor = 0.5 NOT = { military_strength = { who = FROM value = 1.50 } } }
modifier = { factor = 0.0 NOT = { military_strength = { who = FROM value = 1.00 } } }
#JC: Removed - modifier = { factor = 0 NOT = { vassalize = { who = FROM value = 25 } protectorate = { who = FROM value = 25 } } }
}
}
attitude_vassal
Ah the Vassal Attitude. This is where Happy Subjects sit, while Angry ones will slide instead into Hostile and seek Independence.
So what's Wrong with it?
Unlike virtually all of the other Attitudes, this one is heavily dependent on Opinion. Seriously. Having an Opinion over 100 will almost guarantee that the country doesn't turn Hostile given how high the base Factor is. Given how easy it is to get above 100 Opinion, what with the cap being raised to 200, this is trivial in almost all situations.
And frankly, the fact that there are only two possible attitudes for Vassals, and only one possible attitude for Overlords is just kind of boring. The system is shallow, and this could be a great place to expand it by providing multiple different attitudes for a Vassal and for an Overlord.
For instance, take Integration. Right now, a Vassal has two attitudes; Seeking Independence, and Properly waiting for Annexation. Why not add a Third Vassal Attitude called "Autonomous Vassal" or something similar, which does not provide as much of a relations boost, thereby not allowing you to integrate them, but also prevents them from declaring independence. This would let us create a system where some vassals, such as Wallachia/Moldavia for the Ottomans, are Long Term Vassals that you are not meant to integrate.
Trying to integrate them, if we had a trigger to check to see if the process is started... Which we Don't... hint hint... would shift the vassal down into Hostile.
So How do we Fix it?
Well that's all hypothetical stuff. For more immediate changes, I lowered the bonus from having +100 Opinion, and added a Hard Lock such that if the vassal ever has a stronger Military than the Overlord they will be disbarred from this attitude and will be forced into Hostile. I also added a small check so they are less likely to choose this Attitude when At War, but more likely to stick with it if there is a large threatening country nearby.
So what's Wrong with it?
Unlike virtually all of the other Attitudes, this one is heavily dependent on Opinion. Seriously. Having an Opinion over 100 will almost guarantee that the country doesn't turn Hostile given how high the base Factor is. Given how easy it is to get above 100 Opinion, what with the cap being raised to 200, this is trivial in almost all situations.
And frankly, the fact that there are only two possible attitudes for Vassals, and only one possible attitude for Overlords is just kind of boring. The system is shallow, and this could be a great place to expand it by providing multiple different attitudes for a Vassal and for an Overlord.
For instance, take Integration. Right now, a Vassal has two attitudes; Seeking Independence, and Properly waiting for Annexation. Why not add a Third Vassal Attitude called "Autonomous Vassal" or something similar, which does not provide as much of a relations boost, thereby not allowing you to integrate them, but also prevents them from declaring independence. This would let us create a system where some vassals, such as Wallachia/Moldavia for the Ottomans, are Long Term Vassals that you are not meant to integrate.
Trying to integrate them, if we had a trigger to check to see if the process is started... Which we Don't... hint hint... would shift the vassal down into Hostile.
So How do we Fix it?
Well that's all hypothetical stuff. For more immediate changes, I lowered the bonus from having +100 Opinion, and added a Hard Lock such that if the vassal ever has a stronger Military than the Overlord they will be disbarred from this attitude and will be forced into Hostile. I also added a small check so they are less likely to choose this Attitude when At War, but more likely to stick with it if there is a large threatening country nearby.
Code:
# Vassal - is vassal of
attitude_vassal = {
icon = 9
antagonize = no
annex = no
weaken = no
coalition = no
warn = no
vassalize = no
ally = yes
befriend = yes
protect = no
threat = no
ignore = no
chance = {
factor = 10000
#Hard Locks
modifier = { factor = 0 NOT = { is_subject_of = from } }
modifier = { factor = 0 government = daimyo }
#Vassal - Opinion
modifier = { factor = 0.0 is_colonial_nation = no NOT = { has_opinion = { who = FROM value = 0 } } }
modifier = { factor = 2.0 is_colonial_nation = no has_opinion = { who = from value = 50 } }
modifier = { factor = 5.0 is_colonial_nation = no has_opinion = { who = from value = 100 } }
#Vassal - Military Strength
modifier = { factor = 0.5 is_colonial_nation = no military_strength = { who = from value = 0.50 } }
modifier = { factor = 0.5 is_colonial_nation = no military_strength = { who = from value = 0.75 } }
modifier = { factor = 0.1 is_colonial_nation = no military_strength = { who = from value = 1.00 } }
modifier = { factor = 0.0 military_strength = { who = from value = 1.25 } }
#Colonial Nation - Liberty Desire
modifier = { factor = 0.1 is_colonial_nation = yes liberty_desire = 0.5 }
modifier = { factor = 0.5 is_colonial_nation = yes liberty_desire = 0.6 }
modifier = { factor = 0.5 is_colonial_nation = yes liberty_desire = 0.7 }
modifier = { factor = 0.5 is_colonial_nation = yes liberty_desire = 0.8 }
modifier = { factor = 0.0 is_colonial_nation = yes liberty_desire = 0.9 }
#At War
modifier = { factor = 0.8 FROM = { is_at_war = yes } }
#Big Scary Neighbour
modifier = { factor = 1.5 any_neighbor_country = { ROOT = { threat = { who = PREV value = 400 } } } }
modifier = { factor = 1.5 any_neighbor_country = { ROOT = { threat = { who = PREV value = 300 } } } }
modifier = { factor = 1.2 any_neighbor_country = { ROOT = { threat = { who = PREV value = 200 } } } }
modifier = { factor = 1.2 any_neighbor_country = { ROOT = { threat = { who = PREV value = 100 } } } }
}
}
attitude_overlord
And the counterpart to the Vassal Attitude, here is the Overlord one. Of course the Overlord Attitude is the only attitude available for Overlords, they cannot shift to Hostile to combat a Vassal they don't like, unless they are Japan.
So what's Wrong with it?
Eh it's mostly just a placeholder attitude, and it shows. It only has Hard Locks and only two of them at that. Expanding on the system I suggested above, it would be cool to also get different attitudes for the Overlord so that we can communicate what the Overlord's Intentions are to the Vassal. There could be separate attitudes for Overlords who intend to preserve the vassal's autonomy and local rule, and Overlords who intend to integrate them eventually. This would then feed back into the Vassal's Opinion/Attitude.
But none of that is possible right now. Well, once Captain Gars finishes porting the Diplomacy Actions to an editable text file I'll be able to restrict when you integrate a Vassal, but again this system would be intended to operate in a game where the Player is included in the Attitude System.
If we implement the system where attitudes have bonuses, then the different Vassal/Overlord Attitudes could give bonuses to the Overlord/Vassal depending on whcih Attitude is chosen. For instance, if you want your Vassal to develop their lands there could be a "Vassal - Economic Aid" attitude which provided Subsidies.
So How do we Fix it?
Again, most of the potential fixes are all hypothetical at this time. No change to the code, save for me compressing it for easy reading. Seriously Paradox, you have an absolutely excessive number of unecessary newlines. Especially in the Saves! What's up with putting a newline between the '=' and the '{'?
So what's Wrong with it?
Eh it's mostly just a placeholder attitude, and it shows. It only has Hard Locks and only two of them at that. Expanding on the system I suggested above, it would be cool to also get different attitudes for the Overlord so that we can communicate what the Overlord's Intentions are to the Vassal. There could be separate attitudes for Overlords who intend to preserve the vassal's autonomy and local rule, and Overlords who intend to integrate them eventually. This would then feed back into the Vassal's Opinion/Attitude.
But none of that is possible right now. Well, once Captain Gars finishes porting the Diplomacy Actions to an editable text file I'll be able to restrict when you integrate a Vassal, but again this system would be intended to operate in a game where the Player is included in the Attitude System.
If we implement the system where attitudes have bonuses, then the different Vassal/Overlord Attitudes could give bonuses to the Overlord/Vassal depending on whcih Attitude is chosen. For instance, if you want your Vassal to develop their lands there could be a "Vassal - Economic Aid" attitude which provided Subsidies.
So How do we Fix it?
Again, most of the potential fixes are all hypothetical at this time. No change to the code, save for me compressing it for easy reading. Seriously Paradox, you have an absolutely excessive number of unecessary newlines. Especially in the Saves! What's up with putting a newline between the '=' and the '{'?
attitude_dominating
Dominating! The Attitude that Protect apparently wants to be for some reason. It's all AI Logic.
So what's Wrong with it?
Nothing really, it's all AI logic after all. Personally I would suggest making it so Dominating is more likely for countries that are Wrong-Culture/Wrong-Religion. This would work better if we get the more complex vassal relations I was talking about above.
So How do we Fix it?
I didn't make any changes. I am still considering adding checks for Culture and Religion, I think that could be interesting, but I expect those sorts of checks already happen in the underlying Ai Logic.
So what's Wrong with it?
Nothing really, it's all AI logic after all. Personally I would suggest making it so Dominating is more likely for countries that are Wrong-Culture/Wrong-Religion. This would work better if we get the more complex vassal relations I was talking about above.
So How do we Fix it?
I didn't make any changes. I am still considering adding checks for Culture and Religion, I think that could be interesting, but I expect those sorts of checks already happen in the underlying Ai Logic.
attitude_threatened
And last but not least, the threatened attitude, used to denote when a country feels threatened by another country.
So what's Wrong with it?
Nothin'. Well, looking at the Military Strength checks I think someone made a slight mistake because there's a hard Lock at ROOT having half the military strength of FROM, but there's another check at 3 quarters.
So How do we Fix it?
Nothin' ta fix. Again, save what I suspect was a typo.
That said, if we do get a system where having an Attitude gives bonuses to your country, this one should, like Outraged, provide a major Defensiveness Boost, a decent Morale Boost, a Manpower and Reinfocement Rate Boost, and maybe a small Discipline Boost when fighting against the country you feel threatened by, with the bonus scaling with the difference between the two country's strengths.
So what's Wrong with it?
Nothin'. Well, looking at the Military Strength checks I think someone made a slight mistake because there's a hard Lock at ROOT having half the military strength of FROM, but there's another check at 3 quarters.
So How do we Fix it?
Nothin' ta fix. Again, save what I suspect was a typo.
That said, if we do get a system where having an Attitude gives bonuses to your country, this one should, like Outraged, provide a major Defensiveness Boost, a decent Morale Boost, a Manpower and Reinfocement Rate Boost, and maybe a small Discipline Boost when fighting against the country you feel threatened by, with the bonus scaling with the difference between the two country's strengths.
Code:
# Threatened - wants to remain safe from
attitude_threatened = {
icon = 12
antagonize = no
annex = no
weaken = yes
coalition = no
warn = no
vassalize = no
ally = yes
befriend = yes
protect = no
threat = yes
ignore = no
chance = {
factor = 100
#Hard Lock
modifier = { factor = 0.00 OR = { overlord_of = from is_subject_of = from } }
#AI Personality
modifier = { factor = 1.50 personality = ai_capitalist }
#AI Logic
modifier = { factor = 2.0 threat = { who = FROM value = 400 } }
modifier = { factor = 2.0 threat = { who = FROM value = 300 } }
modifier = { factor = 2.0 threat = { who = FROM value = 200 } }
modifier = { factor = 2.0 threat = { who = FROM value = 100 } }
modifier = { factor = 0.0 NOT = { threat = { who = FROM value = 25 } } }
#Military Strength
modifier = { factor = 0.80 military_strength = { who = FROM value = 0.75 } }
modifier = { factor = 1.25 military_strength = { who = FROM value = 0.50 } }
modifier = { factor = 2.50 military_strength = { who = FROM value = 0.25 } }
#Opinion
modifier = { factor = 2.0 NOT = { has_opinion = { who = FROM value = -199 } } }
modifier = { factor = 2.0 NOT = { has_opinion = { who = FROM value = -150 } } }
modifier = { factor = 2.0 NOT = { has_opinion = { who = FROM value = -100 } } }
modifier = { factor = 2.0 NOT = { has_opinion = { who = FROM value = -50 } } }
modifier = { factor = 2.0 NOT = { has_opinion = { who = FROM value = 0 } } }
modifier = { factor = 0.5 has_opinion = { who = FROM value = 50 } }
modifier = { factor = 0.5 has_opinion = { who = FROM value = 100 } }
modifier = { factor = 0.5 has_opinion = { who = FROM value = 150 } }
modifier = { factor = 0.5 has_opinion = { who = FROM value = 200 } }
#Aggressive Expansion
modifier = { factor = 0.50 has_opinion_modifier = { modifier = aggressive_expansion who = FROM } NOT = { has_opinion_modifier = { modifier = aggressive_expansion who = FROM value = -100 } } }
modifier = { factor = 0.50 has_opinion_modifier = { modifier = aggressive_expansion who = FROM } NOT = { has_opinion_modifier = { modifier = aggressive_expansion who = FROM value = -75 } } }
modifier = { factor = 0.50 has_opinion_modifier = { modifier = aggressive_expansion who = FROM } NOT = { has_opinion_modifier = { modifier = aggressive_expansion who = FROM value = -50 } } }
modifier = { factor = 0.75 has_opinion_modifier = { modifier = aggressive_expansion who = FROM } NOT = { has_opinion_modifier = { modifier = aggressive_expansion who = FROM value = -25 } } }
}
}
The Two New Attitudes I am adding
So those are my changes to the Existing Attitudes. Here are the two Attitudes I suggest adding.
attitude_EnemyOfEnemy
The "Enemy of My Enemy" is just that, an Attitude designed to help the AI process Triangular Relations and The Balance of Power.
What's This do?
It is primarily based on evaluating the usefullness of the Rivals of Rivals, and unlike most of the attitudes with Military Strength checks it looks for a sweet spot, and tries to find countries that are weaker than ROOT that ROOT can use as a distraction. It also is only likely to apply if the Common Rival is stronger than ROOT. Ideally those somewhat conflicting impulses will lead to an interesting dynamic where, as the strength of the Common Rival grows, then ROOT's willingness to make alliances with stronger powers will grow as well.
This should provide a substantial Opinion Boost, but no other major bonuses.
The Icon is a a Green Heart with a Sword over it, mix of Friendly and Rivalry.
What's This do?
It is primarily based on evaluating the usefullness of the Rivals of Rivals, and unlike most of the attitudes with Military Strength checks it looks for a sweet spot, and tries to find countries that are weaker than ROOT that ROOT can use as a distraction. It also is only likely to apply if the Common Rival is stronger than ROOT. Ideally those somewhat conflicting impulses will lead to an interesting dynamic where, as the strength of the Common Rival grows, then ROOT's willingness to make alliances with stronger powers will grow as well.
This should provide a substantial Opinion Boost, but no other major bonuses.
The Icon is a a Green Heart with a Sword over it, mix of Friendly and Rivalry.
Code:
# Enemy of my Enemy - Build Relations with Rival of Rival
attitude_EnemyOfEnemy = {
icon = 13
antagonize = no
annex = no
weaken = no
coalition = no
warn = no
vassalize = no
ally = yes
befriend = yes
protect = no
threat = no
ignore = no
chance = {
factor = 100
#Hard Lock
modifier = { factor = 0.00 OR = { overlord_of = from is_subject_of = from } }
modifier = { factor = 0.0 NOT = { any_known_country = { is_rival = FROM is_rival = ROOT } } }
#AI Personality
modifier = { factor = 1.50 personality = ai_diplomat }
#Diplomacy
modifier = { factor = 0.8 is_rival = FROM }
modifier = { factor = 0.8 FROM = { is_rival = ROOT } }
#AI Logic
modifier = { factor = 0.0 threat = { who = FROM value = 400 } }
modifier = { factor = 0.5 threat = { who = FROM value = 300 } }
modifier = { factor = 0.5 threat = { who = FROM value = 200 } }
modifier = { factor = 0.8 threat = { who = FROM value = 100 } }
#Military Strength - FROM to ROOT
modifier = { factor = 0.50 military_strength = { who = FROM value = 1.50 } }
modifier = { factor = 0.80 military_strength = { who = FROM value = 1.25 } }
modifier = { factor = 0.90 military_strength = { who = FROM value = 1.10 } }
modifier = { factor = 1.10 military_strength = { who = FROM value = 0.90 } }
modifier = { factor = 1.20 NOT = { military_strength = { who = FROM value = 0.75 } } }
modifier = { factor = 0.50 NOT = { military_strength = { who = FROM value = 0.50 } } }
#Military Strength - Common Rival to FROM
modifier = { factor = 0.50 any_known_country = { is_rival = FROM is_rival = ROOT military_strength = { who = FROM value = 2.5 } } }
modifier = { factor = 0.80 any_known_country = { is_rival = FROM is_rival = ROOT military_strength = { who = FROM value = 2.0 } } }
modifier = { factor = 0.25 any_known_country = { is_rival = FROM is_rival = ROOT military_strength = { who = FROM value = 1.5 } } }
#Military Strength - Common Rival to ROOT
modifier = { factor = 5.00 any_known_country = { is_rival = FROM is_rival = ROOT military_strength = { who = ROOT value = 2.5 } } }
modifier = { factor = 2.00 any_known_country = { is_rival = FROM is_rival = ROOT military_strength = { who = ROOT value = 2.0 } } }
modifier = { factor = 1.50 any_known_country = { is_rival = FROM is_rival = ROOT military_strength = { who = ROOT value = 1.5 } } }
modifier = { factor = 1.20 any_known_country = { is_rival = FROM is_rival = ROOT military_strength = { who = ROOT value = 1.2 } } }
#Opinion
modifier = { factor = 0.0 NOT = { has_opinion = { who = FROM value = -100 } } }
modifier = { factor = 0.5 NOT = { has_opinion = { who = FROM value = -50 } } }
modifier = { factor = 0.5 NOT = { has_opinion = { who = FROM value = 0 } } }
modifier = { factor = 2.0 has_opinion = { who = FROM value = 50 } }
modifier = { factor = 2.0 has_opinion = { who = FROM value = 100 } }
modifier = { factor = 2.0 has_opinion = { who = FROM value = 150 } }
modifier = { factor = 2.0 has_opinion = { who = FROM value = 200 } }
}
}
attitude_Benefactor
And lastly, the Benefactor Attitude. This Attitude is designed to help small countries find larger countries to protect them from threats they may be facing.
What's This do?
It is primarily based on evaluating the usefullness of the Benefactor, and devotes many of its checks to making sure the Benefactor is not itself a threat to the country. Lorraine, for instance, would be less interested in choosing Austria as a Benefactor, even if being meanced by France, because Austria is itself a threat. Instead they would try for England, or maybe Spain, or another Major Power that doesn't surround their territory.
This obviously can only happen if the FROM Country is more powerful than the ROOT Country. However it also scales with how much more powerful FROM is than any of the threats to ROOT.
This should provide a substantial Opinion Boost, proportional to how much of a threat the Threat country is and how much of a Threat the FROM Country is not.
The Icon is a a Green Heart with Chess Pieces over it, mix of Friendly and Threatened.
What's This do?
It is primarily based on evaluating the usefullness of the Benefactor, and devotes many of its checks to making sure the Benefactor is not itself a threat to the country. Lorraine, for instance, would be less interested in choosing Austria as a Benefactor, even if being meanced by France, because Austria is itself a threat. Instead they would try for England, or maybe Spain, or another Major Power that doesn't surround their territory.
This obviously can only happen if the FROM Country is more powerful than the ROOT Country. However it also scales with how much more powerful FROM is than any of the threats to ROOT.
This should provide a substantial Opinion Boost, proportional to how much of a threat the Threat country is and how much of a Threat the FROM Country is not.
The Icon is a a Green Heart with Chess Pieces over it, mix of Friendly and Threatened.
Code:
# Benefactor - Looking for a Guardian
attitude_Benefactor = {
icon = 14
antagonize = no
annex = no
weaken = no
coalition = no
warn = no
vassalize = no
ally = yes
befriend = yes
protect = no
threat = no
ignore = no
chance = {
factor = 100
#Hard Lock
modifier = { factor = 0.00 OR = { overlord_of = from is_subject_of = from } }
modifier = { factor = 0.00 NOT = { any_known_country = { is_rival = FROM FROM = { is_rival = PREV } ROOT = { threat = { who = PREV value = 100 } } } } }
#AI Personality
modifier = { factor = 1.50 personality = ai_diplomat }
#Diplomacy
modifier = { factor = 0.0 is_rival = FROM }
modifier = { factor = 0.0 FROM = { is_rival = ROOT } }
#AI Logic
modifier = { factor = 0.0 threat = { who = FROM value = 400 } }
modifier = { factor = 0.5 threat = { who = FROM value = 300 } }
modifier = { factor = 0.5 threat = { who = FROM value = 200 } }
modifier = { factor = 0.8 threat = { who = FROM value = 100 } }
#AI Logic - Invalidate if FROM is bigger Threat
modifier = { factor = 0.0 threat = { who = FROM value = 400 } NOT = { any_known_country = { OR = { is_rival = FROM FROM = { is_rival = PREV } } ROOT = { threat = { who = PREV value = 450 } } } } }
modifier = { factor = 0.0 threat = { who = FROM value = 300 } NOT = { any_known_country = { OR = { is_rival = FROM FROM = { is_rival = PREV } } ROOT = { threat = { who = PREV value = 350 } } } } }
modifier = { factor = 0.0 threat = { who = FROM value = 200 } NOT = { any_known_country = { OR = { is_rival = FROM FROM = { is_rival = PREV } } ROOT = { threat = { who = PREV value = 250 } } } } }
modifier = { factor = 0.0 threat = { who = FROM value = 100 } NOT = { any_known_country = { OR = { is_rival = FROM FROM = { is_rival = PREV } } ROOT = { threat = { who = PREV value = 150 } } } } }
#Military Strength - FROM to Threat
modifier = { factor = 2.00 any_known_country = { OR = { is_rival = FROM FROM = { is_rival = PREV } } ROOT = { threat = { who = PREV value = 400 } } FROM = { military_strength = { who = PREV value = 2.50 } } } }
modifier = { factor = 2.00 any_known_country = { OR = { is_rival = FROM FROM = { is_rival = PREV } } ROOT = { threat = { who = PREV value = 200 } } FROM = { military_strength = { who = PREV value = 2.50 } } } }
modifier = { factor = 1.50 any_known_country = { OR = { is_rival = FROM FROM = { is_rival = PREV } } ROOT = { threat = { who = PREV value = 400 } } FROM = { military_strength = { who = PREV value = 2.00 } } } }
modifier = { factor = 1.50 any_known_country = { OR = { is_rival = FROM FROM = { is_rival = PREV } } ROOT = { threat = { who = PREV value = 200 } } FROM = { military_strength = { who = PREV value = 2.00 } } } }
modifier = { factor = 1.50 any_known_country = { OR = { is_rival = FROM FROM = { is_rival = PREV } } ROOT = { threat = { who = PREV value = 400 } } FROM = { military_strength = { who = PREV value = 1.20 } } } }
modifier = { factor = 1.50 any_known_country = { OR = { is_rival = FROM FROM = { is_rival = PREV } } ROOT = { threat = { who = PREV value = 200 } } FROM = { military_strength = { who = PREV value = 1.20 } } } }
#Military Strength - FROM to ROOT
modifier = { factor = 0.00 military_strength = { who = FROM value = 0.80 } }
modifier = { factor = 1.50 NOT = { military_strength = { who = FROM value = 0.50 } } }
modifier = { factor = 2.50 NOT = { military_strength = { who = FROM value = 0.25 } } }
#Opinion
modifier = { factor = 0.0 NOT = { has_opinion = { who = FROM value = -100 } } }
modifier = { factor = 0.5 NOT = { has_opinion = { who = FROM value = -50 } } }
modifier = { factor = 0.5 NOT = { has_opinion = { who = FROM value = 0 } } }
modifier = { factor = 2.0 has_opinion = { who = FROM value = 50 } }
modifier = { factor = 2.0 has_opinion = { who = FROM value = 100 } }
modifier = { factor = 2.0 has_opinion = { who = FROM value = 150 } }
modifier = { factor = 2.0 has_opinion = { who = FROM value = 200 } }
}
}
Conclusion
So that's it. For now at least. I am still investigating certain possibilities and running some games to see what attitudes are chosen by what situations. Speaking of which, I have a download link to the current system I have created below, and I would be very interested to hear from anyone who wants to run their own tests.
Attitude Problem 6-24-2014
Now I'm goin' ta bed.
G'night.
Last edited: