[MOD] More Naval AI

If it is only suppose to be trading low level units, than how was I able to buy a captured Sailor's Dirge from Falamar? I wouldn't exactly call this barbarian hero low level.

Your supposed fix of the tech screen does improve things for me. What resolution screen are you using? I wonder if the problem might exist only for those of us using 16:9 widescreens.

It seems like in my mod states created from revolutions have a very high likelihood of starting out with the Cult of the Dragon state religion, even though all leaders have a -100 ReligionWeightModifier and should be unable to ever adopt it. How do I prevent minor leaders from ever following this destructive faith? Should I just try adding all the civilizations to BlockedReligiousRebels[iDragon] ?

@Horatius: Wasn't the Alchemy Lab always made available by sorcery?

I don't see any particular reason for Charadon to be given the insane trait when he looses peace with the barbarians, but doing so would be a simple change to make in python. In my modmod I give Auric the insane trait when he completes The Draw. (I also give the Auric unit the Crazed promotion. You cannot ascend unless you keep that unit safe, even when it tries to randomly attack stronger units.)
Code:
		if pPlayer.isHuman():
			if pPlayer.hasTrait(gc.getInfoTypeForString('TRAIT_BARBARIAN')):
				eTeam = gc.getTeam(gc.getPlayer(gc.getBARBARIAN_PLAYER()).getTeam())
				iTeam = pPlayer.getTeam()
				if eTeam.isAtWar(iTeam) == False:
					if 2 * CyGame().getPlayerScore(iPlayer) >= 3 * CyGame().getPlayerScore(CyGame().getRankPlayer(1)):
						if iGameTurn >= 20:
							eTeam.declareWar(iTeam, false, WarPlanTypes.WARPLAN_TOTAL)
							[B]if pPlayer.getLeaderType() == gc.getInfoTypeForString('LEADER_CHARADON'):
								pPlayer.setHasTrait(gc.getInfoTypeForString('TRAIT_INSANE'),True)[/B]
							if iPlayer == CyGame().getActivePlayer():
								cf.addPopup(CyTranslator().getText("TXT_KEY_POPUP_BARBARIAN_DECLARE_WAR",()), 'art/interface/popups/Barbarian.dds')
Edit: That is for when the barbairns declare war on hm for being too civilized. (I find that code annoying and removed it from my modmod.) I guess that if you want it to happen whenever he might happen to declare war on him then you would place the code in def onChangeWar, although I've never used that call (I think it was only exposed for the sake of Revolutions) and am not sure exactly the best way to code it.
 
A couple things I'm noticing off hand: Barbarians are building/spawning religious units, specifically Thanes of Kilmorph.

If my understanding that Barbarians are set not to adopt religions, they shouldn't be able to have Thanes at all, as a Temple of Kilmorph are required to build the Thanes.

Barbarians ignore building requirements when creating units since they dont make any buildings. It is possible for Barbs to capture a city with a religion present, though I agree that they shouldnt be making religion-specific units. Seem this issue reappears in new ways every few months. I'll take a look at it.

Tech screen issue: Text on techs selected for research seems to misalign to the left, about two tech icons to the left of where it should be.

Known issue. Will be fixed with the next release.

Barbarians are unaffected by Stasis. I had a Scout poking around a Barbarian city with two Archers (one 3/5, the other 2/4). The next turn a third Archer appeared.

Not sure if that is intentional or not. Text for Stasis only refers to it affecting other players. And while the Barbs are technically another 'player', they generally dont act like one.

When i go into the city screen, the building panel on the left is blank. The regular mouseover still works; so it's not that crippling, but it's mildly annoying.

Not sure what you mean. The list of finished buildings is empty even though you have buildings in that city? I haven't seen that issue before. Are you using any special settings or options?

I thought unit gifting was disabled, yet Arendel Phaedra proposed a tech trade involving my trireme.
You've obviously got the advanced diplomacy enabled. That is one of its stated features, the trading of low level units via diplomacy screen
If it is only suppose to be trading low level units, than how was I able to buy a captured Sailor's Dirge from Falamar? I wouldn't exactly call this barbarian hero low level.

Any Mech unit can be traded, irregardless of its level if you're playing with the Advanced Tactics option.

Revolutions are kind of hurting the AI.

Unfortunately, there was very little to no code in the Revolutions mod for teaching the AI to manage revolt threats. I started to try and work on that, but I dont completely understand the revolution system myself, so its hard to teach the AI. But I'll keep working on it!

Many still go towards middle game techs without education making them too depend of the commerce resources available.

OK. What sort of things do you consider a middle tech? When (in general), is a good time to research Education?

Spamming in wars low tier disciple units has to stop.

OK. It's probably related to someone trying to spread their favorite religion around. I'll see if I can't throttle that a bit during wartime.

Too many buildings still. What's the point of smokehouse when enough health, low happy cap and no whipping?

Agreed. I just looked at a saved game and saw the exact issue you described.

Btw, why has the alchemy lab been moved to sorcery?

Been that way for as long as I've been playing.

Are you going to balance out the spells or will they all stay like they are?

No plans to mess with spell balance.


P.S.: Total random question now: Is it possible to code somehow and make Charadon gain the insane trait after losing peace with the barbarians? I would like to know about that, it would be fun and I think it would work.

Yep. Should be doable. The python code would be something like this:

Code:
pPlayer.setHasTrait(gc.getInfoTypeForString('TRAIT_INSANE'), True)

Then maybe just add a check at the beginning of each player's turn checking to see if they have the Barbarian trait and are at War with the barbs.

Your supposed fix of the tech screen does improve things for me. What resolution screen are you using? I wonder if the problem might exist only for those of us using 16:9 widescreens.

1680:1050

It seems like in my mod states created from revolutions have a very high likelihood of starting out with the Cult of the Dragon state religion, even though all leaders have a -100 ReligionWeightModifier and should be unable to ever adopt it. How do I prevent minor leaders from ever following this destructive faith? Should I just try adding all the civilizations to BlockedReligiousRebels[iDragon] ?

Dont really know. Your suggestion sounds valid.
 
Not sure what you mean. The list of finished buildings is empty even though you have buildings in that city? I haven't seen that issue before. Are you using any special settings or options?
As far as I know, I haven't changed any settings that deal with cities. Maybe it's an issue with bug?

Here's a screenshot of it:
Spoiler :
Civ4ScreenShot0000.bmp
 
@Horatius: Wasn't the Alchemy Lab always made available by sorcery?

My bad. I almost never build the stuff and got confused somehow.

I don't see any particular reason for Charadon to be given the insane trait when he looses peace with the barbarians, but doing so would be a simple change to make in python. In my modmod I give Auric the insane trait when he completes The Draw. (I also give the Auric unit the Crazed promotion. You cannot ascend unless you keep that unit safe, even when it tries to randomly attack stronger units.)
Code:
		if pPlayer.isHuman():
			if pPlayer.hasTrait(gc.getInfoTypeForString('TRAIT_BARBARIAN')):
				eTeam = gc.getTeam(gc.getPlayer(gc.getBARBARIAN_PLAYER()).getTeam())
				iTeam = pPlayer.getTeam()
				if eTeam.isAtWar(iTeam) == False:
					if 2 * CyGame().getPlayerScore(iPlayer) >= 3 * CyGame().getPlayerScore(CyGame().getRankPlayer(1)):
						if iGameTurn >= 20:
							eTeam.declareWar(iTeam, false, WarPlanTypes.WARPLAN_TOTAL)
							[B]if pPlayer.getLeaderType() == gc.getInfoTypeForString('LEADER_CHARADON'):
								pPlayer.setHasTrait(gc.getInfoTypeForString('TRAIT_INSANE'),True)[/B]
							if iPlayer == CyGame().getActivePlayer():
								cf.addPopup(CyTranslator().getText("TXT_KEY_POPUP_BARBARIAN_DECLARE_WAR",()), 'art/interface/popups/Barbarian.dds')
Edit: That is for when the barbairns declare war on hm for being too civilized. (I find that code annoying and removed it from my modmod.) I guess that if you want it to happen whenever he might happen to declare war on him then you would place the code in def onChangeWar, although I've never used that call (I think it was only exposed for the sake of Revolutions) and am not sure exactly the best way to code it.

Many thanks.
I just thought that this trait would compensate for the lose of peace, it doesn't matter if it doesn't make sense.
 
OK. What sort of things do you consider a middle tech? When (in general), is a good time to research Education?

After enough growth and working the available and closest resources that give some commerce. Otherwise, what do you do for more commerce?
BW and such introduces middle game for me.



OK. It's probably related to someone trying to spread their favorite religion around. I'll see if I can't throttle that a bit during wartime.
Not sure if only that. I don't think the AI can evaluate those units properly for fighting.


No plans to mess with spell balance.
Fair enough. Still, it's only a role-playing game then, not a challenging one.

Cheers
 
It seems like in my mod states created from revolutions have a very high likelihood of starting out with the Cult of the Dragon state religion, even though all leaders have a -100 ReligionWeightModifier and should be unable to ever adopt it. How do I prevent minor leaders from ever following this destructive faith? Should I just try adding all the civilizations to BlockedReligiousRebels[iDragon] ?

BlockedReligiousRebels in RebelTypes.py is no longer used, as the module itself. All settings are made in RevCivUtils.py, in the lower part of the file (class RevCivDefines); It should be self-explanatory.
@Tholal: maybe you can add a notice to RebelTypes.py and/or remove it from the releases

But the "blocked" religions just cause that a religious revolution e.g. will not spawn illians.

When you just want to spawn a particular civ when a CotD revolution appears, it is made easily:
Code:
self.lpCivRules[self.iSheaim].liReligions = [self.iVeil, self.iDragon]

self.lpCivRules[*Every Other Civ*].liBlockedReligions = [self.iDragon]

If you want to prevent revolutionary civs from spawning with CotD, you have to go deeper into Revolution.py (search for "chooseRevolutionCiv", the sixth parameter "giveRelType" is the religion)
 
Thanks for the information.

When I try to save or check for bugs in RevCivUtils.py I get a message that encoding it is ascii will result in an information loss. Is it ok to proceed?


@Tholal: When I was following lfgr's instructions I noticed that the code that is supposed to set the Svartalfar's terrain preferences says Ljosalfar instead of Svartalfar. I believe that you copied this from the other elven civ and forgot to edit it.

You also give the Lanun negative affinity for coasts between the Hippus and Illian terrain preferences, in addition to giving them positive affinity for coasts with their own preferences. I'm guessing this is supposed to be for the Hippus?
 
When I was following lfgr's instructions I noticed that the code that is supposed to set the Svartalfar's terrain preferences says Ljosalfar instead of Svartalfar. I believe that you copied this from the other elven civ and forgot to edit it.

You also give the Lanun negative affinity for coasts between the Hippus and Illian terrain preferences, in addition to giving them positive affinity for coasts with their own preferences. I'm guessing this is supposed to be for the Hippus?

Both right. (RevCivUtils is my fault :mischief:) I thought I checked it all...
Thanks!
@Tholal: File with fix is attached. And sorry that I gave you buggy code

EDIT: I have no idea about the ascii thing. I saved it in ANSI as most of the xml files are.
 

Attachments

@Tholal: File with fix is attached.

Excellent. Thanks!

Tholal: A Question how puppet states should behave: If there are no more leaders, even not minor ones, should the game rather allow a duplicate leader or a puppet state of another civ type?

Definitely not a different civ. I'm fine with duplicate leaders.
 
Massive UI bug in BUG, affecting game play to the point where it's almost impossible to continue long-term.
Spoiler :
CivBUGUIerror.jpg

CivBUGUIerrorcity.jpg


This is from a multiplayer game (no revolutions/puppet states, no advanced diplomacy), taken from my computer. The other two systems were unaffected. Checking BUG settings didn't really show anything helpful in fixing this. As far as I can tell, this triggered after alt-tabbing between an IM convo on MSN and the game between turns (I play in windowed mode to minimize processing lag switching apps). However, this has never been an issue in other BUG mod mods (RevolutionsDCM, Destiny).
 
I had a problem similar to that at one point. All the useful information in the UI disappeared after I'd changed some of the BUG settings. In my case it seemed to be an effect of setting the clock display to era specific colours and the UI reverted after I unselected that option.
 
I had a problem similar to that at one point. All the useful information in the UI disappeared after I'd changed some of the BUG settings. In my case it seemed to be an effect of setting the clock display to era specific colours and the UI reverted after I unselected that option.

Looks like it was exactly that.

Tholal, my friends are reporting that the Revolutions/Puppet State and the Advanced Diplomacy are causing OOS issues around turn 30-50. I'll try to replicate it with my own systems to see if it happens again.

Also, related to multiplayer, is there any possibility to enable LAN games? Currently, we can only play via Direct IP (and Internet play isn't an option as like in LAN games currently, we can't see the other players at all).
 
Also, related to multiplayer, is there any possibility to enable LAN games? Currently, we can only play via Direct IP (and Internet play isn't an option as like in LAN games currently, we can't see the other players at all).

I have never been able to play LAN games with Civilization IV at all. I just use Direct Connection every time. It's probably an issue of the game itself (or something that both of us are doing wrong); if that's the case it can't be fixed in the mod.

I have a question too, is Govannon supposed to be able to teach level I spells to, for example, champions?

Now, a list of issues I found :)

  • Herne(kuriotates) does not appear as a hero in the Sevopedia.

  • Heroes appear in the unique units field too.

  • Whenever an enemy unit with a great general attached dies, you get a cryptic message such as "Pyre Zombie has died in combat". That message could be improved to let you know why such loss is important.

  • You can't attach great generals to Govannon or wizards. I have not tested with other civilizations besides the Amurites but it probably affects all adept units.

  • You can get a lot of free promotions using Dispel magic + Mutate.

  • The bug that mess up with the current unit list is still happening.

  • How come that I have "Financial troubles" as a bad national factor for revolutions? I had science at 90%, and I was still getting 75 gold per turn.

  • Arendel Phaedra (my puppet state) adopted Arete and Fellowship of Leaves in the same turn. To keep her from changing from RoK to FL I had to bribe her to change to RoK and use inquisition in all of her towns at the same time.

  • Evil civilizations are hit very badly by revolutions. There where 4 Sheaim civilizations at one point in one of my test games. Auric had to kill Braeden the Laconic 5 times.

  • We were playing against a Sheaim / Clan of Embers team and somehow they gave Ashen Veil to Acheron's city and other barbarian cities.

I have been enjoying the new additions (specially Advanced Tactics, Sevopedia and BUG) in my last few games. Advanced Tactics makes the game more interesting :)

I'm concerned with Revolutions, though. It feels off balance to me, as it punishes certain strategies and civilizations. I like Puppet states though, so I would like to know if you considered my suggestion of splitting the game option for Puppet States and Revolutions. I would like to try to code this if you are willing to include it.
 
I've noticed that none of the religion's holy shrines are appearing the the 'pedia.

I'd also prefer it if the Minor Leaders would show up in the 'pedia.

When I tried allowing great generals to be attached to new unitcombats it resulted in those units being able to purchase the promotion with xp, but only when they were level 1. (I wasn't sure how to get around this, and didn't like having both Great Generals and Great Commanders in the game anyway so I merged the two into one. In my version generals now are joined to units with a spell like commanders, but still have that star.)


Revolutions do seem too much at times. I would at least recommend making Unyielding Order, The Tower of Complacency, The Pillar of Chains, and Dungeons reduce the chance of revolutions.

Palaces should probably have a bigger effect too. In the last game where I switched to control the Mercurians, I conquered my first city from the Balseraphs instead of sending my settler to marginal land away from the battlefront. I got a message about an upcoming revolution before I had acquired my second city. (I had already given Unyielding Order <iRevIdxLocal>-100</iRevIdxLocal> and so decided to give an angel Law 3 to end the rist f revolution.)

What is wrong with spreading AV to barbarian cities? I've done that as the Clan or Infernals since some of my earliest games of FfH2. What I thought was odd in my last Clan game based on this mod is that my Savants kept failing to spread their religion in barbarian cities although Ritualists could spread it by founding temples there just fine.

Are you sure it it better to have duplicate rulers than being in other civilizations? Personally I would much prefer that the <DerivativeCiv> be tried first. If Tholal has one preference and I have another, how would go about changing this in my version?


Edit: I just switched to Sacrifice the Weak for the first time, and noticed all of its instability penalties. Penalties of +4 local instability in each city, +2 national instability, and ++50% city distance instability penalty taken together seems like too much. I'm thinking of halving those in my version.

Also, did you noticed the ++ %? All of the city distance instability modifiers (or at least all of them for civics) have the minor graphical error of double +'s.
 
I have never been able to play LAN games with Civilization IV at all. I just use Direct Connection every time. It's probably an issue of the game itself (or something that both of us are doing wrong); if that's the case it can't be fixed in the mod.

That may well be, but we are able to use LAN for Vanilla BTS and for RevolutionsDCM. I haven't tried with Destiny yet.
Vanilla BTS works with Internet Play. Haven't tried with RevDCM or Destiny (the other player didn't have the mods).

FFH2 does not work with LAN or Internet Play.
 
FFH2 does not work with LAN or Internet Play.
I've played orbis with Internet play before, you might want to try that. (if by internet play you mean that gamespy one.)
 
Back
Top Bottom