Orions Mod Collection

Sounds like the system in the Total War series, except let's hope the AI's actually competent in your modcomp. And a great idea, btw :goodjob:
 
The Diplomat Mod

Announcing the release of the Diplomat Mod - Beta 1.0

See first page for link to download.

Enjoy!

Great news, i have been wanting this since Tom(tsentom1) had his made in his mod:goodjob: Also i am the 1st to d/l Yeah!

Also a plus, you stayed away from that dreaded CvEventManager.py file.
 
Great news, i have been wanting this since Tom(tsentom1) had his made in his mod:goodjob: Also i am the 1st to d/l Yeah!

Also a plus, you stayed away from that dreaded CvEventManager.py file.

This mod was far more difficult than I originally thought. The Popups had some limitations that kept me up nights trying to find a work around. All things considered, I think the python turned out pretty good. The missions are very expensive. So you have to decide whether or not you can risk losing the gold. If you are rich, it is possible to take over many cities, without declaring war! :groucho:
 
Did you select the OGI_Smartmap Map option? The mod will crash if you don't use this option.

I wasn't having much luck figuring out/ finding on the forum what "OGI_Smartmap" is.

I have been able to play sometimes, although it involves hitting escape, saving and reloading the save on the first turn to get the interface to load.

Could you please walk me through the steps for properly beginning a new game ?

1) Load BTS
2) Load Grand Inquisitions.
3) Then what's the menu "Pathway"?

Thanks!
 
I wasn't having much luck figuring out/ finding on the forum what "OGI_Smartmap" is.

I have been able to play sometimes, although it involves hitting escape, saving and reloading the save on the first turn to get the interface to load.

Could you please walk me through the steps for properly beginning a new game ?

1) Load BTS
2) Load Grand Inquisitions.
3) Then what's the menu "Pathway"?

Thanks!

Sure.

1. First check out post 235 for this forum and make sure you follow the steps. Steps are the same for ver 255C.

2. The attachment has a picture showing how to select OGI_Smartmap. This is the same menu where you select the civs, when starting a new game.

3. Let me know if it worked.
 

Attachments

  • OGI_Smartmap.jpg
    OGI_Smartmap.jpg
    102.5 KB · Views: 61
Short answer Thanks a lot, it works fine now. It's an exciting map!

Long Story I've been trying out more Civ IV modpacks and telling my freinds about them lately, and I unzipped one in the wrong place which started messing things up. I tried to figure out what was changed, but I couldn't find all of the files/ the source of the problem. I went the remove Civ and mods/double defrag/ re-install route. Then I updated using the link in the game menu. Maybe I should mention that my pathway looks like (If my memory serves) C/program files 86/2K games/ firaxis/Civ IV Complete/ Civ IV/BTS/Mods

Anyway, had been very interested in The Navy Mod, but came across your GI 255 modpack on the mod components forum, so this mod was my first install. Play was kinda quirky, when it didn't crash on load, so I posed my question.

Meanwhile, I tried to re-install LoR. It wouldn't work, insisting that my BTS version wasn't up to date. So I updated again from the game. It was downloading fine, but wasn't installing the patch. Whenever I would check it still said "317 Final Version", so I followed the download link from Civ Fanatics and it updated just fine.

Then I saw your reply.

I tried loading my GI 255C save and it started with inteface and everything, I didn't have to double load it, but the mod was still missing some features.

Then I tried to track down the files as per post #255. I found and changed the value to 1 in the Civ IV files, but the closest I came to finding it in your mod looked to me like it already said 1, so I didn't mess with anything in there.

The menu came up as you said when I tried to start a new game of GI, and I've been playing ever since.

I like the way you think, I would have modded many of the same things if I had the skill:goodjob:
 
Short answer Thanks a lot, it works fine now. It's an exciting map!

The menu came up as you said when I tried to start a new game of GI, and I've been playing ever since.

I like the way you think, I would have modded many of the same things if I had the skill:goodjob:

Thanks for your feedback and I'm glad you got it working. Ver 255D will be released soon and will have a few Python fixes and a multitude of efficiency updates. The new Spy buildings will be free upon discovery of their respective techs, as that was my intention from the beginning.

255D seems to be a lot more stable than previous versions and performs better when running test games with AI Autoplay. I plan on playing a multiplayer huge map scenario at Thanksgiving. So, you can be rest assured that ver 255D will be released well before then.
 
Hello OV,

About the ice breakers not breaking ice for the AI. I'm sure you are aware of this.
I have attempted to fix this with my rudimentary Python-skills.
In CvGameUtils.py I added this code:
PHP:
	def AI_unitUpdate(self,argsList):
		pUnit = argsList[0]

### BREAK ICE AI - START - 16/10/11 - ARIAN

		pUnitType = pUnit.getUnitType()
		pWorkboat = gc.getInfoTypeForString("UNIT_WORKBOAT")
		iUnitOwner = pUnit.getOwner()
		pPlayer = gc.getPlayer(iUnitOwner)

		# unit must be workboat
		if pUnitType == pWorkboat:
			iX = pUnit.getX( )
			iY = pUnit.getY( )
			pPlot = CyMap( ).plot(iX, iY)
			iPlotOwner = pPlot.getOwner()
		
			# plot must be owned by player or by nobody
			if iPlotOwner == iUnitOwner or iPlotOwner == -1:
				# plot must have ice
				iFeatureIce = gc.getInfoTypeForString("FEATURE_ICE")
				if pPlot.getFeatureType() == iFeatureIce:
					# check if ice can be removed
					iBreakIce = gc.getInfoTypeForString("BUILD_BREAK_ICE")
					if pUnit.canBuild(pUnit.plot(), iBreakIce, false) == true:
						# break the ice ??
						pUnit.getGroup().pushMission(MissionTypes.MISSION_BUILD, iX, iY, 0, False, False, MissionAITypes.MISSIONAI_BUILD, pUnit.plot(), pUnit)
						return true

### BREAK ICE AI - END - 16/10/11 - ARIAN

		return false
I wonder if the pushMission will work.
Also workboats do not actively search for ice to break.
What do you think of the code? Will it work?
Maybe it needs some finetuning :)
 
Hello OV,

About the ice breakers not breaking ice for the AI. I'm sure you are aware of this.
I have attempted to fix this with my rudimentary Python-skills.
In CvGameUtils.py I added this code:
Spoiler :

PHP:
	def AI_unitUpdate(self,argsList):
		pUnit = argsList[0]

### BREAK ICE AI - START - 16/10/11 - ARIAN

		pUnitType = pUnit.getUnitType()
		pWorkboat = gc.getInfoTypeForString("UNIT_WORKBOAT")
		iUnitOwner = pUnit.getOwner()
		pPlayer = gc.getPlayer(iUnitOwner)

		# unit must be workboat
		if pUnitType == pWorkboat:
			iX = pUnit.getX( )
			iY = pUnit.getY( )
			pPlot = CyMap( ).plot(iX, iY)
			iPlotOwner = pPlot.getOwner()
		
			# plot must be owned by player or by nobody
			if iPlotOwner == iUnitOwner or iPlotOwner == -1:
				# plot must have ice
				iFeatureIce = gc.getInfoTypeForString("FEATURE_ICE")
				if pPlot.getFeatureType() == iFeatureIce:
					# check if ice can be removed
					iBreakIce = gc.getInfoTypeForString("BUILD_BREAK_ICE")
					if pUnit.canBuild(pUnit.plot(), iBreakIce, false) == true:
						# break the ice ??
						pUnit.getGroup().pushMission(MissionTypes.MISSION_BUILD, iX, iY, 0, False, False, MissionAITypes.MISSIONAI_BUILD, pUnit.plot(), pUnit)
						return true

### BREAK ICE AI - END - 16/10/11 - ARIAN

		return false

I wonder if the pushMission will work.
Also workboats do not actively search for ice to break.
What do you think of the code? Will it work?
Maybe it needs some finetuning :)

A couple of notes:

1. OGI has an Ice Breaker unit called "UNITCLASS_ICE_BREAKER", and does not use the workboat for breaking ice.

2. You might want to specify when the workboat receives the capability to break ice by identifying a prerequisite tech.

I believe the mission should work. However, you need to make the work boat go to a specified plot with ice to execute the mission. I will play with it and if successful, I will update OGI with the new capability.
 
A couple of notes:

1. OGI has an Ice Breaker unit called "UNITCLASS_ICE_BREAKER", and does not use the workboat for breaking ice.

2. You might want to specify when the workboat receives the capability to break ice by identifying a prerequisite tech.

I believe the mission should work. However, you need to make the work boat go to a specified plot with ice to execute the mission. I will play with it and if successful, I will update OGI with the new capability.

OK, thanks.
1. I used the vanilla workboat. The code is meant for vanilla BTS.
2. I don't think that's necessary (Combustion is the tech that allows workboats to enter tiles with ice). Prior to that workboats can't enter ice and the missions can't be pushed, because the tile never contains ice. And then there's the check 'pUnit.canBuild' :)

Making workboats (or icebreakers in OGI) seek out ice is not implemented, but would be great!
 
Making workboats (or icebreakers in OGI) seek out ice is not implemented, but would be great!

Yes. The core issue is always getting the AI to use the new capability. I'm sure I can force the Icebreaker to seek out ice plots. The trick is seeking out the correct plots to remove ice and limiting the missions to only those key plots necessary to allow other ships to pass through.

I'm also working on my new cyber terrorist unit for the late game. At a minimum, the Cyber terrorist will have a chance to set the progress off an opponent's reseach back to zero. Success rate will be very low, but can be increased, in 5% increments, with the use of additional Cyber terrorists on the execution plot (The Capital City). I can just hear it now: How the #e!! did that happen! :mischief: :lol:
 
I'm really enjoying this mod, it seems like there's always something to build.

It seems to me that the first spy tech wasn't appearing on the pop-up menu after completing research for a tech, I had to open the tech tree and look for it, because there were no spies to build. Minor, really, once you know to check the tree.

What seems odd to me was that the only coal-powered ship I could find was the BTS Ironclad.
Everything else from ironclad frigates to Pre-Dreadnaught Battleships required oil. The game switches navies abruptly from sails to oil. I'm pretty sure that oil shouldn't be a requirement before the destroyer/Dreadnaught era.

What does your historian say about this?
 
Yes. The core issue is always getting the AI to use the new capability. I'm sure I can force the Icebreaker to seek out ice plots. The trick is seeking out the correct plots to remove ice and limiting the missions to only those key plots necessary to allow other ships to pass through.

Having workboats/icebreakers seek out ice plots would be better than nothing. My code only allows breaking ice on plots owned by the player or plots owned by nobody. Near the end of the game all the ice would be gone :lol:
 
I'm really enjoying this mod,

That's great news.

...it seems like there's always something to build.

That's exactly my intent: Lots of choices. Everything you build requires a strategic decision. A decision to the question: What should I build next?

It seems to me that the first spy tech wasn't appearing on the pop-up menu after completing research for a tech, I had to open the tech tree and look for it, because there were no spies to build. Minor, really, once you know to check the tree.

Yes. The first spy tech is "Information Gathering," which is about data collection and analyzing it in preparation for the next spy tech, "Spying"; which is where spies are first introduced.

What seems odd to me was that the only coal-powered ship I could find was the BTS Ironclad. Everything else from ironclad frigates to Pre-Dreadnaught Battleships required oil. The game switches navies abruptly from sails to oil. I'm pretty sure that oil shouldn't be a requirement before the destroyer/Dreadnaught era. What does your historian say about this?

Hmmm. You have a point. I will discuss it with the historian and make approapriate ship changes to require coal instead of oil. Thanks for the tip. :)

Answer: The following ships should be powered by coal:

Ironclad Frigate
Ironclad Battleship
Early Destroyer
Early Cruiser
PreDreadnought

These changes will be released in ver 255D, but if you want, you can manually make those changes in the CIV4UnitInfos.xml file for ver 255C.
 
Having workboats/icebreakers seek out ice plots would be better than nothing. My code only allows breaking ice on plots owned by the player or plots owned by nobody. Near the end of the game all the ice would be gone :lol:

I'll work on it and let you know the results. Thanks.
 
Status update for ver 255D

1. Added Diplomat Mod
2. Added the Cyber Terrorist unit
3. Added National Wonder - Information Protection Center
4. Added National Wonder - Cyber Terrorism Center
5. Coal is now a prerequisite for 5 Ships instead of oil:

Ironclad Frigate
Ironclad Battleship
Early Destroyer
Early Cruiser
PreDreadnought

6. Lots of Python changes and tweaks.
7. Working on Missions for Cyber Terrorist
8. Working on getting the AI to use the Icebreaker unit.
 
Status update for ver 255D

1. Added Diplomat Mod
2. Added the Cyber Terrorist unit
3. Added National Wonder - Information Protection Center
4. Added National Wonder - Cyber Terrorism Center
5. Coal is now a prerequisite for 5 Ships instead of oil:

Ironclad Frigate
Ironclad Battleship
Early Destroyer
Early Cruiser
PreDreadnought

6. Lots of Python changes and tweaks.
7. Working on Missions for Cyber Terrorist
8. Working on getting the AI to use the Icebreaker unit.

That is terrific!
 
Here's a piece of code that checks for ice on tiles adjacent to the icebreaker. If there's ice and plot is owned or plot is nobody's then move to that plot. Next turn the icebreaker should start breaking the ice until done and then start all over again.
PHP:
	def AI_unitUpdate(self,argsList):
		pUnit = argsList[0]

### BREAK ICE AI - START - 16/10/11 - ARIAN

		pUnitType = pUnit.getUnitType()
		pIceBreaker = gc.getInfoTypeForString("UNIT_ICEBREAKER")
		iUnitOwner = pUnit.getOwner()
		pPlayer = gc.getPlayer(iUnitOwner)

		# unit must be icebreaker
		if pUnitType == pIceBreaker:
			iX = pUnit.getX( )
			iY = pUnit.getY( )
			pPlot = CyMap( ).plot(iX, iY)
			iPlotOwner = pPlot.getOwner()
		
			# plot must be owned by player or by nobody
			if iPlotOwner == iUnitOwner or iPlotOwner == -1:
				# plot must have ice
				iFeatureIce = gc.getInfoTypeForString("FEATURE_ICE")
				if pPlot.getFeatureType() == iFeatureIce:
					# check if ice can be removed
					iBreakIce = gc.getInfoTypeForString("BUILD_BREAK_ICE")
					if pUnit.canBuild(pUnit.plot(), iBreakIce, false) == true:
						# break the ice ??
						pUnit.getGroup().pushMission(MissionTypes.MISSION_BUILD, iX, iY, 0, False, False, MissionAITypes.MISSIONAI_BUILD, pUnit.plot(), pUnit)
						return true

					else:
						# check adjacent plot
						for iXLoop in range(iX - 1, iX + 1, 1):
							for iYLoop in range(iY - 1, iY + 1, 1):
								checkPlot = CyMap().plot(iXLoop, iYLoop)
								icheckPlotOwner = checkPlot.getOwner()
								# check if plot is owned by player or plot not owned by anybody and plot has ice
								if (iPlotOwner == iUnitOwner or iPlotOwner == -1) and checkPlot.getFeatureType() == iFeatureIce:
									pUnit.getGroup().pushMission(MissionTypes.MISSION_MOVE_TO, iXLoop, iYLoop, 0, False, False, MissionAITypes.NO_MISSIONAI, pUnit.plot(), pUnit)
									return true

### BREAK ICE AI - END - 16/10/11 - ARIAN

		return false
Notes:
1. Workboats are no longer able to break ice.
2. Create a seperate ice breaker unit.
3. Make sure icebreakers become available with COMBUSTION.
4. No messing with workboat AI, preventing possible issues.
5. Make sure the AI builds at least one icebreaker.

Code has probably some issues as I didn't test it. What do you think?
 
Here's a piece of code that checks for ice on tiles adjacent to the icebreaker. If there's ice and plot is owned or plot is nobody's then move to that plot. Next turn the icebreaker should start breaking the ice until done and then start all over again.

Spoiler :

PHP:
	def AI_unitUpdate(self,argsList):
		pUnit = argsList[0]

### BREAK ICE AI - START - 16/10/11 - ARIAN

		pUnitType = pUnit.getUnitType()
		pIceBreaker = gc.getInfoTypeForString("UNIT_ICEBREAKER")
		iUnitOwner = pUnit.getOwner()
		pPlayer = gc.getPlayer(iUnitOwner)

		# unit must be icebreaker
		if pUnitType == pIceBreaker:
			iX = pUnit.getX( )
			iY = pUnit.getY( )
			pPlot = CyMap( ).plot(iX, iY)
			iPlotOwner = pPlot.getOwner()
		
			# plot must be owned by player or by nobody
			if iPlotOwner == iUnitOwner or iPlotOwner == -1:
				# plot must have ice
				iFeatureIce = gc.getInfoTypeForString("FEATURE_ICE")
				if pPlot.getFeatureType() == iFeatureIce:
					# check if ice can be removed
					iBreakIce = gc.getInfoTypeForString("BUILD_BREAK_ICE")
					if pUnit.canBuild(pUnit.plot(), iBreakIce, false) == true:
						# break the ice ??
						pUnit.getGroup().pushMission(MissionTypes.MISSION_BUILD, iX, iY, 0, False, False, MissionAITypes.MISSIONAI_BUILD, pUnit.plot(), pUnit)
						return true

					else:
						# check adjacent plot
						for iXLoop in range(iX - 1, iX + 1, 1):
							for iYLoop in range(iY - 1, iY + 1, 1):
								checkPlot = CyMap().plot(iXLoop, iYLoop)
								icheckPlotOwner = checkPlot.getOwner()
								# check if plot is owned by player or plot not owned by anybody and plot has ice
								if (iPlotOwner == iUnitOwner or iPlotOwner == -1) and checkPlot.getFeatureType() == iFeatureIce:
									pUnit.getGroup().pushMission(MissionTypes.MISSION_MOVE_TO, iXLoop, iYLoop, 0, False, False, MissionAITypes.NO_MISSIONAI, pUnit.plot(), pUnit)
									return true

### BREAK ICE AI - END - 16/10/11 - ARIAN

		return false

Notes:
1. Workboats are no longer able to break ice.
2. Create a seperate ice breaker unit.
3. Make sure icebreakers become available with COMBUSTION.
4. No messing with workboat AI, preventing possible issues.
5. Make sure the AI builds at least one icebreaker.

Code has probably some issues as I didn't test it. What do you think?

A few thoughts:

1. After being built, how does the icebreaker go find the first plot with ice?
2. What happens if all adjacent plots have no ice?
3. How does the icebreaker calculate a plot 10 plots away to be the next plot to break.
4. How does the icebreaker prioritize plots to break? (...or are we just breaking ice, like mowing grass, until all the ice is gone? (i.e what's your intent?)
5. I don't believe you need the pUnit.canBuild line because we already checked to make sure the plot has ice and we verified the unit we are moving is an icebreaker. So if the plot has ice and we move an icebreaker to the plot, then just execute the mission to break ice.
6. At the very end of your code, replace iPlotOwner with icheckPlotOwner.
 
Back
Top Bottom