One Turn Delay in AI "Worst Enemy" after signing Peace Treaty

KMadCandy

giggling permanoob
Joined
Oct 16, 2005
Messages
4,002
Location
Peepsville
when the AI signs a peace treaty, the -at war penalties go away instantly, which often changes the status of the relationship (annoyed -> cautious for example). the change in status is properly shown instantly. but in cases where that makes the person they were at war with no longer their worst enemy, the game does not recognize that they're not enemies until the following turn.

note: the AI's worst enemy is whoever they're annoyed or furious with that they hate the most. if they are cautious or higher towards someone, they do not consider that person their worst enemy.

1. choose single player
2. load attached save

3. note Shaka's attitude to Cyrus. Annoyed, -7
Spoiler :
ShakaPreCompass.jpg
4. bribe Shaka compass to sign peace with Cyrus. that instantly changes Shaka's attitude to Cyrus to Pleased, +1. therefore Cyrus cannot be Shaka's worst enemy.
Spoiler :
ShakaPostCompass.jpg
5. note Shaka's attitude towards you. +1. now save the game, to make the next steps easier :)
6. before hitting enter, trade with Cyrus. compass for gold works.
7. note Shaka's attitude towards you. you earned negative modifiers for trading with his worst enemy, but the person you traded with is someone he is pleased with, and can't be his worst enemy!
Spoiler :
ShakaBug.jpg
8. just to be thorough, hit enter and verify that the -worst enemy penalty doesn't go away.

showing that it's a bug:
9. load the save you made at step 5, or repeat steps 1-4.
10. this time, hit enter after Shaka likes Cyrus but before you trade with Cyrus, to let the internal "worst enemy" system catch up to the display that you see.
11. note that Shaka's attitude toward everyone is still the same, including Cyrus. so his worst enemy, if he had one, would be the same person that it was last turn.
12. make a tech trade with Cyrus now. doesn't matter what.
13. note Shaka's attitude towards you. +1 as it originally was, with no "worst enemy" penalty.

the AI's worst enemy isn't ever displayed on the screen, you just have to figure it out. my guess, for what it's worth, is that's the problem. because it's behind-the-scenes, it's only calculated between turns? in this game, the entire reason for bribing shaka to sign peace was to trade with cyrus without getting negative modifiers, so this bug had a major negative impact. :gripe:

this game was played in 3.13 with Bhruic's unofficial patch. i also have a save (like this one, courtesy of Sisiutil) played with the previous BtS patch where this shows up. two AIs are calling the player their worst enemy even tho they're Cautious toward him, on the turn that they signed a peace treaty. the very next turn they are willing to trade with him and don't call him their worst enemy. so this is not new to 3.13, and i don't even know whether it's new to BtS.
 

Attachments

showing that it's a bug:

That's not showing that it's a bug, that's showing that it doesn't get calculated until the AI's turn. Personally, I don't see a problem with only calculating it then. The only "bug" here, imo, is that we don't have something displaying who someone's worst enemy is, so we can't tell that Cyrus is still Shaka's worst enemy.

Bh
 
okay, we disagree. i certainly don't think it's a feature (or even acceptable) that i need to consider the possibility that an AI can be pleased with somebody and simultaneously consider them their worst enemy. clearly it can mess up my relations with them; it did in this player's case.

i'd love it if they'd just come out and show the worst enemy on the screen, that would be super.
 
if anything I'd consider it a bug that the attitude adjusts real time while the calculations done because of it do not ;)
An AI should not regard anyone as his worst enemy towards whom it is cautious or better - so the expectation that this is no longer a worst enemy scenario is warranted, on the other hand such problems only really occur when the human player tries to get around this game mechanic by tweaking diplomacy so maybe its just one of the pitfalls of trying to outsmart the game code :p
 
An AI should not regard anyone as his worst enemy towards whom it is cautious or better

I don't agree with the "should not" part. Or perhaps, I use a different "should not". I think that if you manipulate the AI's attitude towards other AIs, the game "should not" reflect that until the AI gets a chance to consider the situation - which is what happens on the AI's turn. Again, I don't see a problem with the way it is handled, I do have a problem with the fact that the way it is handled isn't made apparent (ie, by displaying who's someone's worst enemy).

Bh
 
if anything I'd consider it a bug that the attitude adjusts real time while the calculations done because of it do not ;)
yeah as long as the two things match that would satisfy this permanoob. it's when what shows doesn't match what's behind the scenes that it can mess games up.

on the other hand such problems only really occur when the human player tries to get around this game mechanic by tweaking diplomacy so maybe its just one of the pitfalls of trying to outsmart the game code
pshaw! do your friends ever have a little tiff over something in real life? sometimes my friends do, and i try to encourage them to get along, to make life easier for all of us, and to make the world a better place. this is exactly the same thing! get around game mechanics, outsmarting game code ... those things have nothing to do with it. :mischief:
 
I don't agree with the "should not" part. Or perhaps, I use a different "should not". I think that if you manipulate the AI's attitude towards other AIs, the game "should not" reflect that until the AI gets a chance to consider the situation - which is what happens on the AI's turn. Again, I don't see a problem with the way it is handled, I do have a problem with the fact that the way it is handled isn't made apparent (ie, by displaying who's someone's worst enemy).

Bh
:D :agree:
One more example of: I should be clearer in my statements ;)
I do not think this is a bug. I do think it is unfortunate that the attitude shown changes in real time since human players who know that the worst enemy code says that the attitude must be worse than cautious for the worst enemy flag to be set can be led to think that they can get around it in a way like in this ALC game. All considered this is not a bug but just a game mechanic that does work a bit different than people expected in this particular game.
 
well i do want to make it clear that in my opinion this doesn't affect only people that know about "worst enemy has to be below cautious" code. i included that in case people my report didn't know about it. i know both of you did ;).

looking at the screen after the peace treaty is signed, Shaka gives the player +1 score, with a rank of Cautious. he gives Cyrus +1 also, with a rank of Pleased. imo even someone who thinks that the AI always has a worst enemy won't think that Shaka picks Cyrus as his. they'd probably thinks it's the player, because we're tied for lowest number overall, and we have the lowest number in the lowest word-category overall. we look like the person he likes least in the world.

but i'm not gonna persuade anybody so i'll let it rest. sorry for the wasted thread.
 
It's not wasted just because we don't agree with you. It definitely highlights an important game issue. There should be some immediate and obvious way to see who an AI's worst enemy is so this sort of issue can be avoided.

Bh
 
Back
Top Bottom