Orions Mod Collection

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.

All good questions. My thoughts about this:
1. Give the icebreaker besides UNITAI_WORKER_SEA (default workboat AI) also UNITAI_EXPLORE.
2. Nothing, default AI behavior kicks in.
3. That's not implemented.
4. It's like mowing grass :lol:. I've no real intent except trying to make the icebreaker more or less usable/working for the AI. Returning the same question to you: what was your intention to make an icebreaker that only was useful for the human player while the AI had no idea how to use it? :p
5. I suppose you're right here.
6. CopyNPaste Error :lol:
 
All good questions. My thoughts about this:
1. Give the icebreaker besides UNITAI_WORKER_SEA (default workboat AI) also UNITAI_EXPLORE.
2. Nothing, default AI behavior kicks in.
3. That's not implemented.
4. It's like mowing grass :lol:. I've no real intent except trying to make the icebreaker more or less usable/working for the AI. Returning the same question to you: what was your intention to make an icebreaker that only was useful for the human player while the AI had no idea how to use it? :p
5. I suppose you're right here.
6. CopyNPaste Error :lol:

1. I suppose the UNITAI_WORKER_SEA attribute would make the icebreaker explore the entire coastline. I think I have a better solution, but I'm going to have to go through my latest code for mine warfare to figure it out.
4. My original intent: To give human players the capability to break ice and eventually get around to the AI side of it.

I'll post some code here in a couple of days.
 
1. I suppose the unitai_worker_sea attribute would make the icebreaker explore the entire coastline. I think i have a better solution, but i'm going to have to go through my latest code for mine warfare to figure it out.
4. My original intent: To give human players the capability to break ice and eventually get around to the ai side of it.

I'll post some code here in a couple of days.

Ok :)
 

Sorry it took so long, but real life issues pulled me away from the keyboard for a while. There are several functions for the AI to use the Ice breaker unit and all of them will be found in OGI 255D, when it is released. For now I will post the most important function that cleared the way for the AI:

Spoiler :

Code:
def hasIceBreakerPlot(pCity):
	# Assumes pCity is a coastal city
	# Looks for ice on a water plot next to land  	
	iMinRange = 1
	iMaxRange = 5
	FoundTargetIcePlot = False
	iX = pCity.getX()
	iY = pCity.getY()
	pCityPlot = CyMap().plot(iX, iY)
	iPlotOwner = pCityPlot.getOwner()
	
	for iPlotLoop in range(CyMap().numPlots()):
		pLoopPlot = CyMap().plotByIndex(iPlotLoop)
		pLoopPlotTerrainType = pLoopPlot.getTerrainType()
		# find shortest path between the source plot and the destination plot.
		iPlotDistance = CyMap().calculatePathDistance(pCityPlot, pLoopPlot)
		
		# Make sure the plot is within the min and max range perameters
		if iPlotDistance in range(iMinRange, iMaxRange):
			# make sure plot is not None
			if not pLoopPlot.isNone():
				# Exclude the City plot.
				if pLoopPlot != pCityPlot:
					iLoopPlotOwner = pLoopPlot.getOwner()
					
					# plot must be owned by player or by nobody
					if  (iLoopPlotOwner == iOwner) or (iLoopPlotOwner == -1):
						# Make sure this is a water plot
						if pLoopPlot.isWater():
							# Make sure the water plot is next to land
							if pLoopPlot.isAdjacentToLand():
								# plot must have ice
								if pLoopPlot.getFeatureType() == gc.getInfoTypeForString("FEATURE_ICE"):
									FoundTargetIcePlot = True
									#TargetIcePlot = pLoopPlot
									break
		
	if FoundTargetIcePlot:
		CyMap().resetPathDistance()
		return True
	
	return False
 
Status update for ver 255D

The list of new stuff is getting big!

Spoiler :

- Added Diplomat Mod
- Added F86 Sabre
- Added F9F Panther
- Added U2 Dragon Lady
- Added B17 Flying Fortress
- Added B29 Superfortress
- Added B47 Stratojet
- Added Lightning - Which can hurt or even strike an early unit dead!
- Added the Cyber Hacker unit
- Added Police Station Building
- Added Radar Station Building
- Added Siege Workshop
- Added Cannon Forge
- Added Artillery Yard
- Added Canned Food Factory
- Added National Wonder - Purebred Stables
- Added National Wonder - Commercial Satellites
- Added National Wonder - Pirates Hoard
- Added National Wonder - Water Fountain
- Added National Wonder - Cyber Warfare Command Center
- Added National Wonder - Federal Aviation Administration
- Added python code to get AI to use the Icebreaker unit
- Added Religious Victory movie
- 10 Commandments World Wonder has new movie file and scroll graphics
- Magna Carta World Wonder has new scroll graphics
- Kepler's Laws World Wonder has new celestial graphic
- Coal is now a prerequisite for 5 Ships instead of oil:

Ironclad Frigate
Ironclad Battleship
Early Destroyer
Early Cruiser
PreDreadnought

- Cyber Hacker has 10 missions:

Attack Current Research - Sets research progress back to 0
Attack Education System - Removes Oxford University
Attack Communication System - Removes Telephone
Attack Banking System - Removes WallStreet
Attack Production Plants - Removes Iron Works
Attack Power Grid - Removes 1 Coal, Hydro and Nuclear power Plant
Attack Air Traffic Control - Removes Federal Avaition Administration
Attack Legal System - Removes Supreme Court
Attack Health System - Removes Red Cross
Attack Satellites - Removes Spy Satellite

- Added 5 new techs

Guided Munitions
Early Flight
Modern Aviation
Siege Weaponry
Ironclad Construction

- Added several new promotions aimed at improving the air war.

Improved Radar
General Purpose Bombs
Laser Guided Bombs
GPS Guided Bombs
Heat seeking Missiles
Laser Guided Missiles
Semi Active Homing missiles
External Fuel Tanks
In-Flight Refueling
Chaff
Veteran Pilot
Topgun Pilot
Electronic Counter Measures

- Lots of Python changes and tweaks.
- Fixed a few XML issues for units.


Testing is now under way. If all tests are successful, then the release date for ver 255D should be in a few days.
 
Congrats with your update OV. :goodjob:
Please don't forget to release an update for your Ice Breaker Modcomp ;)

Yea. I need to update several of the individual component mods. It may be a while though. However, if you can't wait, for the mod comp, the python updates for the Icebreaker are included in OGI. I have worked on OGI almost every spare moment I have had for months. It is my gift to the Civ4 community. But, now that I have finished this edition, it's time for me to take just a little R&R and actually play a game. Imagine that!
 
Question what xml file tells where to look for the trait icon? I like to change it to this one I made for Expansive but don't know where to change it in the xml file so it reads the one I made.
So far I love the new Grand Inquisitions 255D
 
Question what xml file tells where to look for the trait icon? I like to change it to this one I made for Expansive but don't know where to change it in the xml file so it reads the one I made.
So far I love the new Grand Inquisitions 255D

The trait icon is actually specified in the TraitUtil.py in the Grand Inquisitions 255D\Assets\Python\BUG folder. You will need to modify the tga file to make it work.

How about this icon instead?
 

Attachments

I like the 2nd picture best, although I would have preferred a miniture of my green espansive icon to replace the ANGRY_POP_CHAR. :coffee:



This is a temp I change the ANGRY_POP_CHAR to the Expansive font I made this is how It would look like in the game

But when I change it back and add these two changes in the Python files the main screen is not working. I think there is one more file that these to be change but I don't know which one to get it to work. Or is there a limit to how many traits icons that can be added to the fonts that I don't know. If someone out there can make this work plz help. here what I got so far in this file
 
This is a temp I change the ANGRY_POP_CHAR to the Expansive font I made this is how It would look like in the game

But when I change it back and add these two changes in the Python files the main screen is not working. I think there is one more file that these to be change but I don't know which one to get it to work. Or is there a limit to how many traits icons that can be added to the fonts that I don't know. If someone out there can make this work plz help. here what I got so far in this file

Apparently, you must extend the game font files, just as you did in the CvUitil.py file, and then make an SDK change the CvEnums.h FontSymbols enum. This would require a new DLL. Therefore, this change is not possible for ver 255D and will have to wait for the next big release: 255E. We can stick with ANGRY_POP_CHAR for now.

Thanks for your effort! :)
 
·Imhotep·;11078014 said:
Hey Orion,

could you give a quick glance to my question about your Great Person Bare Bone Mod and maybe give me an answer? Thanks!

I have your answer. The download includes both versions of the mod, WoC and standard. The WoC version has the modular GreatPersonEvents.py file, but the standard version does not. This is because the the standard version uses the standard CvEventManager.py file and there is no need for the GreatPersonEvents.py file. If you open the CvEventManager.py file and scroll down to the onGreatPersonBorn function, you will see the python changes need for the Great Person Mod clearly identified. Hope that helps. Cheers.
 
Current status for development of OGI version 255E:

- Added 2 new Techs:

City Planning
Sanitation

- Added new buildings:

Sewer System.
Public School

- Added new World Wonders:

Ancient Ruins
World Trade Center

- Added Several new units:

FT17 Tank
MarkV Tank
M3 Stuart Tank
M24 Chaffee Tank
M26 Pershing Tank
M48 Patton Tank
M60 Patton Tank
Jevelineer
Rock Thrower
Bazooka
Gatling Gun
Big Bertha
Quinquereme
Early Ballista
Arbalest

- Reconfigure Mine Warfare to make Mine Fields and Nuclear Mines promotions instead of units. Performance, in terms of speed, has improved significantly during testing.

- Changed XML strength value to 0 for all Mines in Mine Warfare, which fixed problem of AI units abandoning cities. (Note: Combat calculations are all done in code)

- Added a few python tweaks to slightly speed up mine warfare.

- Simplified python code for the pirate function of looting or capturing merchant ships.

- Swapped out graphic files for a few buildings and units for better looking and improved versions.

- The tank mod is every bit as good as the Naval and Aviation mods.

- More stuff in the works.
 
Back
Top Bottom