In my last game, I found that AIs cancel resources trade deals very often, to a degree of disrupting game flows. [...] Could this behavior be made less frequent and/or more natural? For example, with some probabilities/uncertainties for cancelling resources trades. Thanks.
Both approaches are already implemented (since v0.95 I think or even earlier). All the same, I also recall seeing the AI cancel trades only to ask for an extra 1 or 2 gold. @Bestban: Is that what usually happened in your game? Or did they refuse to trade some of the resources involved? How many players were there?Maybe implementing a negligibly threshold might do the trick, say if the re-evaluation of a deal deviates less than 10% from the existing deal, just leave it as is.
I fully agree with the sentiment that the AI shouldn't minmax its trades at the expense of the game flow. Actually, I even put a comment to that effect in the cancellation code:
Spoiler :
Code:
if (iChange < 0)
{
//return (iTheirValue * 110 >= iOurValue * 100);
// <advc.133> Always 125 in K-Mod
int iTolerance = (bHuman ? 145 : 155) - std::min(35, iDealAge);
// <advc.155>
if(bSameTeam)
{
if(iTheyReceive < iThreshold)
return true;
iTolerance = 150;
} // </advc.155>
if(iTolerance * // </advc.133>
iWeReceive >= iTheyReceive * 100) // K-Mod
return true;
/* <advc.036> Need to make trades more stable in large games,
even to the detriment of the AI. But mustn't cling to a bad deal
indefinitely -> randomize it. */
if(!bHuman)
return false;
double prCancel = (0.025 * iTolerance) /
(GET_TEAM(kPlayer.getTeam()).getHasMetCivCount() *
iTheyReceive / (double)iWeReceive);
return (prCancel < ::hash(g.getGameTurn(), getID()));
// </advc.036>
}
I've added that just recently after seeing Kjotleik's post here. I had been thinking about enlarging more screens but somehow never thought of the replay screen. Good to know that it's working correctly on another person's monitor.Not sure if this is new, since I just had my first AdvCiv game completed. An enlarged map by this change for Replay does look very nice.
It doesn't sound difficult. The desired behavior is that all wounded units with the same domain type (land/ sea/ air) as the currently selected unit(s) become selected?Another thing that bugs me for a long time: I often use CTRL + H to select wounded units from a stack, which doesn't work when there are air or sea units on the same tile. This is an old bug also happening in vanilla, but maybe you care to fix this anyway?