Final Frontier Plus

A few things:

The whole "preview panel doesn't quite match what really happens" issue is something I've noted a few times but never really thought about. Making them match would be good, but first it should be decided which one is the one to go with. Moving that 6th planet into the 2nd influence zone would be pretty easy (but it would change the play to make that 2nd border pop less important and strengthen Halis) - all it would take is changing the ">=" on line 475 to a ">" to move the 6th planet out of the 3rd set into the 2nd set. Changing the preview panel is only a little more difficult as you have to move the influence zone label and adjust the label spacing allowance to happen where it should.

I think I agree with you that the balance is better the way it is currently. So I'll look into changing the interface.

in Finaler Frontier the 2nd leader's names are very similar to the originals as a reminder to me that they are pretty much the same leader - the only difference is the secondary trait, every other characteristic in the leaderhead XML is still identical for each pair.

Oh... well, that makes sense.

Maybe I'll open a thread in the forum about the leaders (or maybe you'll open such a thread), both names and personality changes.

On that subject: I was considering merging the civilization trait system from mods like FFH 2, so then we could have two unique traits for each leader. Obviously would not happen until leaders get merged, which won't happen until the Mod Platform version is released... but it might be something to think about.

There is an entry for the Sensor Station in the Units section of the Civilopedia, right after "Scout" and right before "Starbase". There is only one level, no Delta or Omega version. My main issue with them is that they are strength 0, so you pretty much have to keep a ship (or two) on top of them.

I guess we could give them some strength- maybe 10 at most- enough to fight off an early-game attacker but not enough to survive a serious assault. The point is that they're vulernable but useful- but you're right, they should have some strength.

And do you think we should have Delta and Omega versions?

For instance, maybe the standard could only have Sensors I, then the Delta Sensors II, and then the Omega Sensors III? If we did that I might increase their base visibility range though.

Another request related to the division of the planets into influence levels, is it possible to indicate on the "city screen" the influence tier, (maybe by shading the background, or inserting a border between influence levels) to aid quicker calculation of information? Just a thought...

It might be possible...

The same thing was requested earlier in this thread (also by PieceOfMind, I think). But I'm not certain how to do it. Although I could probably figure it out. I'll look into it...

My husband had a great idea for the names of the secondary rulers...use the contributors to this project!!! What better way to honor the hard work of these folks? You could probably use Jon Shafer, too.

I don't know... as I said, eventually I'll open a thread in the forum about the new leaders- if God-Emperor doesn't do it first. Maybe other people would have suggestions there that I might like better.

I suppose we could use our names- but I'd make sure the people who would be tapped as a leader would agree first.
 
Version 1.61 has a bug: nobody can build extraction facilities on any resource. You can try (and the AI does, repeatedly) but you never actually get the thing. There is currently no workaround. It ought to be fixed in the next patch - unfortunately I have no ETA for that.
 
Version 1.61 has a bug: nobody can build extraction facilities on any resource. You can try (and the AI does, repeatedly) but you never actually get the thing. There is currently no workaround. It ought to be fixed in the next patch - unfortunately I have no ETA for that.

It should be by tomorrow. It will fix the extraction facility bug and provide a proper fix for the building art (rather than the XML/Python workaround God-Emperor already posted). It should fix the planet info screen thing to- I'm working on that at the moment.

Sorry for not getting it out sooner, I've been busy (and without access to Civ).

Better to stick 1.60 then maybe. :)

Not really, because the bug isn't created by 1.61, it existed in 1.60 too (it was just not reported before I posted 1.61).

1.60 is worse, because the upgrade costs for all units are free and nuking cities didn't work.
 
1.62 has been released. Changelog:

-Fixed bug where Extraction Facilities were unbuildable
-Fixed bug where buildings orbited the solar system at the wrong place
-Fixed the Planet Info Screen to display info about the 6th planet correctly
 
TY for mentioning me on the patch download! As far as the crash bug, I think it's mostly because I use real player and miniaturize the game every ten to twenty minutes. So again, it's probably just me.

PS: Grats on getting the next patch out fast, that extraction bug was a game killer for me.
 
Greetings one and all.
I have (kind of) successfully managed to merge the B5 mod with Final Frontier Plus however i have encountered a small problem when i start to play test.
First run through i noticed that my home system was neither producing food or production.
I thought it may be a problem with the nutrition and mining facilities. I checked the nutrition facility which is set to give +1 :food: and store 1% :food: so the home planet with 1 assigned population is producing 4 :food: with 1 being consumed by the population which, if my maths is good, leaves 3 to grow the population. However the city screen shows the city is stagnant for growth.
The mining facility is set to give +1 :hammers: The home planet only has 1 :hammers: to start with so with the facility built should be throwing out 2 :hammers: a turn. This too is is showing 0 in the city screen.

Any ideas what may be wrong?

(Edit) Incidentally, i'm playing on Warlord Level on a huge map at Marathon speed.
 
First run through i noticed that my home system was neither producing food or production.

How about commerce?

I thought it may be a problem with the nutrition and mining facilities. I checked the nutrition facility which is set to give +1 :food: and store 1% :food: so the home planet with 1 assigned population is producing 4 :food: with 1 being consumed by the population which, if my maths is good, leaves 3 to grow the population. However the city screen shows the city is stagnant for growth.
The mining facility is set to give +1 :hammers: The home planet only has 1 :hammers: to start with so with the facility built should be throwing out 2 :hammers: a turn. This too is is showing 0 in the city screen.

Any ideas what may be wrong?

(Edit) Incidentally, i'm playing on Warlord Level on a huge map at Marathon speed.

My first guess is that you should check the updatePlotYield function in CvFinalFrontierEvents.py, comparing what you have to what FFP has.

After that, check updateMapYield.

Then make sure that each of these two functions are called in all the same places (give or take - if you are not using the new alien inhabited systems then you don't need the new onGoodyReceived, which has a call to updatePlotYield).

The storage of data for yield changes for buildings and traits and such has been moved to the XML data and DLL, but the planet related parts of the yield calculations are still done in Python. And, importantly, the code that actually sets the star system's yield values is in the Python at the end of updatePlotYield. It is the calls to pCity.setBaseYieldRate there that actually set the yield values. If this is not being called there then the actual yield values will all stay at 0 and you'll get no food, production, or commerce.
 
if you are not using the new alien inhabited systems then you don't need the new onGoodyReceived, which has a call to updatePlotYield.
I haven't done anything to disable this feature (alien inhabited systems) so i'm fairly sure it's not this.
I've just compared the original Final Frontier Plus CvFinalFrontierEvents.py file with the merged FF+/B5 CvFinalFrontierEvents.py and the only difference between the two files is that the B5 version has the Jump Point culture added into it.
Really not sure of what to look for in the dll so i guess i'm stuck for the moment.
 
There have been some reports with yield-related problems- one, that the yield data isn't calculated correctly until turn 1 (second turn), and two, that the Forge trait is messed up. But if you don't have the Forge trait you should have no issues here.

What I would suggest doing is putting some print statements into updatePlotYield(). Well, actually, you shouldn't need to, since there are already some debug statements. You'd need to turn on debugging in CvSolarSystem.py to see them though (at the top of the file).

Does B5 have a custom DLL? Here is the code in the DLL, CvCity::doTurn(), that I added. The comments explain it pretty well, I think.

Code:
//Added in Final Frontier: TC01
//	Looks at building yield changes, trait yield changes, trait yield changes with trade routes to set city base yield, and trade route yields
//	Then, planet-specific yield stuff is done automatically in Python with changeYieldRate, in the callback right after this
//	There are potential problems... if a city can't have negative base yield rate (Forge gets -1 in all cities). This has been (hopefully) fixed by "Python override"
	CvPlayer& pPlayer = GET_PLAYER(getOwner());
	int iYield = 0;
	int iBuildingYield = 0;
	int iTraitYield = 0;
	setFoodOverride(0);
	setProductionOverride(0);
	setGoldOverride(0);
	for (int iYieldLoop = 0; iYieldLoop < NUM_YIELD_TYPES; iYieldLoop++)
	{
		//Building yields
		for (int iBuilding = 0; iBuilding < GC.getNumBuildingInfos(); iBuilding++)
		{
			BuildingTypes eBuilding = (BuildingTypes)iBuilding;
			if (getNumRealBuilding(eBuilding) > 0)
			{
				iBuildingYield = GC.getBuildingInfo(eBuilding).getYieldChange(iYieldLoop) * getNumRealBuilding(eBuilding);
			}
			iYield += iBuildingYield;
		}

		//Trait yields, and traits with trade routes yields
		for (int iTrait = 0; iTrait < GC.getNumTraitInfos(); iTrait++)
		{
			TraitTypes eTrait = (TraitTypes)iTrait;
			if (pPlayer.hasTrait(eTrait))
			{
				iTraitYield = GC.getTraitInfo(eTrait).getYieldChanges(iYieldLoop);
				for (int iTradeCity = 0; iTradeCity < getTradeRoutes(); iTradeCity++)
				{
					CvCity* pTradeCity = getTradeCity(iTradeCity);
					if (pTradeCity != NULL)
					{
						iTraitYield += GC.getTraitInfo(eTrait).getTradeRouteYieldChanges(iYieldLoop);
					}
				}
				iYield += iTraitYield;
			}
		}

		//Trade routes (currently, only Gold is used... bad?)
		if (iYieldLoop == 2)
		{
			iYield += getTradeYield((YieldTypes)2);
		}

		//Finally, store the value so Python can access it (because I'm too lazy to move all this back to Python)
		YieldTypes eYield = (YieldTypes)iYieldLoop;
		switch (eYield)
		{
			case YIELD_FOOD:
			{
				setFoodOverride(iYield);
				break;
			}
			case YIELD_PRODUCTION:
			{
				setProductionOverride(iYield);
				break;
			}
			case YIELD_COMMERCE:
			{
				setGoldOverride(iYield);
				break;
			}
			default:
			{
				break;
			}
		}
	}
//End of Final Frontier
 
Hi. B5 didn't have a custom dll until i merged it with FF+ and i haven't touched it in any case.

We don't have any of the standard FF civs in the B5 mod so there's no problem with their traits and the problem continues even if you use WB.

Using WB i gave myself 5000 :gold: and then purchased a mining facility, a nutrition facility and one of our custom buildings over 3 consecutive turns, after i did that i went back into WB and added a population point which promptly starved to death when i ended the turn. taking me back to a stagnant population of 1. Even going beyond this and doing the same thing on 2 more planets in the early radius there was no difference. Commerce is the only thing that doesn't seem to be affected as i am generating surplus credits.

The only thing i haven't tried is creating a new city in a new star system to see if the same thing happens there.

I'm close to releasing an updated version of the our mod but want to resolve this issue before i do. Is there any chance you could take a look at the whole mod before i release it to try and find the problem?
 
Have you checked to make sure that your population is actually assigned to work the planet?
That's a schoolboy error which i have double and triple checked for.

Even using WB and settling 4 systems it has made no difference. The only thing i hadn't done which i have done now was to incorporate the 1.62 patch. However, as this overwrote my Civ4UnitInfos.xml file i'm having to rebuild all the units i lost in the modded version. Almost completed it now so will try and get another play test before the night is out.
 
Commerce is the only thing that doesn't seem to be affected as i am generating surplus credits.

How much commerce are you generating?

Setup: you have only 1 system with 1 population and have run one turn (to get past the strange first turn yield problem). In this situation, is your total commerce equal to only the free commerce from the capitol building (8 in regular FFP), or is it that much plus the commerce from the one population point working a planet?

This should tell us if you are getting any yield at all from your planets - currently it sounds like you are not, but are getting the building based yields. If this is the case, the problem may be in your CvSolarSystem.py since you already checked CvFinalFrontierEvents.py.

Does your PythonErr.log file have anything in it?
Do you have Python exception reporting turned on in your civ .ini file?
 
Does your PythonErr.log file have anything in it?
Do you have Python exception reporting turned on in your civ .ini file?
:cry: I really wish i knew what you are talking about.

People keep mentioning things like this but i've not found a step by step guide that tells me how to check a mod for errors/exceptions.
 
Go to the civ4BTS ini file by going to Civ4/BtS and clicking on the shortcut called _Civ4Config. I believe the actual file is in the BtS MyGames directory. Once you have the ini file open, search for python exceptions and follow the instruction. A word of warning though, when I used used python exceptions on B5 last time I got alot of exceptions as you changed next to none of the python so it was still looking for the default FF stuff.
 
In your Beyond the Sword directory, there should be a link called "_Civ4Config". Double-click it and it will open your .ini file.

Search for "Python", and the first match should be this:

Code:
; Set to 1 for no python exception popups
HidePythonExceptions = 1

Change HidePythonExceptions to 0, from 1, to display in-game error messages.

Then search for "CheatCode" and you should get this:

Code:
; Move along
CheatCode = 0

Change CheatCode to "chipotle", from 1, to enable additional in-game debugging info (like the Python console, accessible by SHIFT + ~)

Then go down to the [DEBUG] section and set the values of all items below to 1 (OverwriteLogs should already be 1)

Code:
; Enable the logging system
LoggingEnabled = 0

; Enable synchronization logging
SynchLog = 0

; Overwrite old network and message logs
OverwriteLogs = 1

; Enable rand event logging
RandLog = 0

; Enable message logging
MessageLog = 0

Then, still in your Beyond the Sword folder, there should be a link "_Civ4Logs" (this points you to a directory in the My Games folder somewhere). Open it and there should be various log files. The relevant ones are PythonErr.log and PythonDbg.log.

PythonErr.log contains all Python errors, printed in-game when Python exceptions are on.

PythonDbg.log contains the output of all "print" statements from the Python code. This is also where the printd() debugging commands output to, if you turn on debugging in CvSolarSystem.py
 
The first version of the Mod Platform has been released.

More details available on the download page (it's hosted at WPC here), in the readme, and in the Mod Platform thread.
 
Top Bottom