• Civilization 7 has been announced. For more info please check the forum here .

Probably Improved Gameplay Mod

GlobalDefines (BBAI_Game_Options_GlobalDefines.xml):
Code:
		[COLOR="Green"]<!-- Better BTS AI: Turns defensive pacts into something more like an alliance, the pact does not break on war declaration.  (Def: 0) -->[/COLOR]
		<DefineName>BBAI_ALLIANCE_OPTION</DefineName>
		<iDefineIntVal>[B]0[/B]</iDefineIntVal>
 
Why would they do that? That's not even what Defensive Pacts are about and it's definelty not a change that improves the AI. Gross gameplay change that should not be in the scrope of "Better AI".

In PIG I found that setting in GlobalDefinesAlt.xml and manually changed it my self. Thanks Fuyu.
 
Defensive Pacts are just a bit weak, once you declare they are gone (ok), and once you get declared on they are gone (wtf?) though at least the player who declared on you is now at war with everyone you had Pacts with too. If a second player declares on you the same turn however, he will only be at war with you, no more protection - if I read that code correctly, never actually had a DP myself.

Making DP survive at least getting declared war on you is a good idea imo, being able to drag everyone into the war not so much though. So what about the middle ground: if you declare war, DPs get cancelled, but if you are only defending they stay?
 
I like that. It may be slightly tricky given how the code works: DoWing removes all your DPs. Having a DP with someone who gets DoWed causes you to DoW on the attacker, removing the DP. But you don't want to just make the attacker DoW on each player in the DP because the one coming to the defense should take the diplo hit. Therefore the DoW code needs a new parameter bDefensive that gets set to true when DoWing from a DP.
 
You are right, and there I thought at least that was easy .. the most interesting variant in my eyes would be if DPs survive both getting declared on and declaring yourself, however if you declare, you are not dragging anyone with you. I just thought that would be more complicated .. but yeah, all variants but the ones we already have are more complicated than they look.
 
Hehe, let's work through the case of A and B with a DP and X and Y with a DP.

  1. A declared on X.
  2. Y declares on A due to DP.
  3. B declares on Y due to DP.
  4. X declares on B due to DP.
  5. A declares on himself!
Step 5 aside, there's one thing I don't like about this: It allows the aggressor to bring in his backup automatically. Perhaps only the aggressor should lose their DPs. I would be fine if those DPs were kept and only triggered if other aggressors attacked the original aggressor (say Z attacks A above to take advantage of the situation).

Perhaps only rivals DoWing the aggressor due to a DP or being bribed into the war would not trigger further DPs. Any rival attacking A without being asked or forced by a DP would trigger A's DPs.

  1. A declared on X.
  2. Y declares on A due to DP.
If X or Y bribe Z to attack A, no DPs are activated. But Z DoWing A out of the blue would trigger A's DP with B causing B to DoW Z essentially creating a "new war." between C and X/Y.

Complicated, but maybe more interesting? I think everything I stated here is doable in the code, but it would require tracking which players are the aggressors in a way.
 
DPs are already very strong, since they allow you to piggyback on a huge neighbor and possibly deter any and all DoWs. I don't see why they should be made stronger. If they weren't removed upon incoming DoW one could get quite abusive with them.
 
Noone is actually making any changes, we are just contemplating. And if anything is ever implemented, it will be off by default.
One solution to the case of A and B with a DP and X and Y with a DP problem with A declaring on X would be to make the aggressor handle all war declarations:
A declares on X.
A automatically also declares on Y because X has DP with Y.
Implied: for A to be able to declare on X, he has to be able to declare war on everyone of X's DP partners. A will also be the one who suffers all the diplo hits from war declaration.
 
I thought of that before but am not too fond of it. The aggressor would be happy to not DoW the DP partner; it is the DP partner (Y above) who is choosing to enter the war to support X and should suffer any diplo penalties with A's friends. Sure, you can argue that A knows this will happen, but if given the choice, A would most likely gladly skip the war with Y and just DoW X, so they can't really be blamed for Y's actions.

Side note: I hadn't thought of the situation where A and Y have a peace treaty and A declares on X. What happens? Is the DP voided without Y having to DoW on A?
 
Long overdue answer: Having looked at the code just now I think DoW happens even if you have peace since I see no check for canDeclareWar() inside declareWar(). DPs would be useless otherwise, all you'd need to do would be to donate 1 gold to every DP partner of your target.

But the actual reason why I was posting here again was that I wanted to know if there will be any updates any time soon, I was kind of hoping to hear about any improvements (or lack thereof) on the improvement oscillation front - I made some tiny changes to AI_bestPlotBuild a while ago but with the lack of time and thus lack of testing I'm still not sure how much they actually do.
 
I'm temporarily handicapped with modding activities at the moment, mainly because I still don't have an internet connection worth writing home about (am still in a fight with the ISP to get it fixed). The last couple of updates I posted for the mod felt like miracles given the frequency of connection dropouts.

Anyway, I hope to get some updates done but if my previous updates have been any indication they tend to come in bursts, usually when I have a bit of free time on my hands (between work and uni).

Regarding the improvement oscillation problems, I haven't had a time to look at your changes yet Fuyu. Hopefully some time soon I will get around to merging in your latest update (it's been a while since my last update of your DLL) but I can't guarantee anything beyond that in the near future.
 
i just installed the 0.911 and it seems that the 'regenerate map' button is not present upon creating a new map.

Would it be possible to bring it back and post and update ?
 
It's fixed in the SVN update, the next release will have it working correctly.

Ok, i can't wait. Where can i find the SVN URL / login / password ?

It must be hidden somewhere obvious as i can't find svn properties in this thread. Is there any generic SVN tree for this forum ?

like svn.civfanics... ?
 
It is indeed a bit empty. I'm not working on the mod at the moment.

cripp7 said it's fixed in the next update. That's because this mod usually takes the updates from Better BUG AI now (Fuyu's). Anyone is welcome to download the latest source for this mod and make these sorts of small fixes.
 
It is indeed a bit empty. I'm not working on the mod at the moment.

cripp7 said it's fixed in the next update. That's because this mod usually takes the updates from Better BUG AI now (Fuyu's). Anyone is welcome to download the latest source for this mod and make these sorts of small fixes.
would i need to compile a dll for that ? If it's only python code i might be able to diff myself through it.
 
would i need to compile a dll for that ? If it's only python code i might be able to diff myself through it.

I'd say it'd be DLL changes but I haven't had a chance to look yet so I can't be certain. Fuyu might let you know.
 
Top Bottom