Final Frontier Plus

I just clicked played a bunch of turns. It crashed completely on about turn 89. I have no idea why - I have not re-run from the last save to see what it was trying to do.

Before that, there was a python error (same basic problem in two different locations in the smae file):
Code:
Traceback (most recent call last):

  File "CvEventInterface", line 19, in onEvent

  File "CvEventManager", line 187, in handleEvent

  File "CvEventManager", line 878, in onCityDoTurn

  File "CvAdvisorUtils", line 951, in cityAdvise

ArgumentError: Python argument types in
    CyCity.canConstruct(CyCity, int, bool, bool, bool)
did not match C++ signature:
    canConstruct(class CyCity {lvalue}, int, int, bool, bool, bool)
ERR: Python function onEvent failed, module CvEventInterface
Traceback (most recent call last):

  File "CvEventInterface", line 19, in onEvent

  File "CvEventManager", line 187, in handleEvent

  File "CvEventManager", line 878, in onCityDoTurn

  File "CvAdvisorUtils", line 705, in cityAdvise

ArgumentError: Python argument types in
    CyCity.canConstruct(CyCity, int, bool, bool, bool)
did not match C++ signature:
    canConstruct(class CyCity {lvalue}, int, int, bool, bool, bool)
ERR: Python function onEvent failed, module CvEventInterface

I assume you added an int to the canConstruct function call to specify the planet, but didn't update these uses in CvAdvisorUtils.

yup...basically every function that's somehow related to building take an additional int as Planet index. If you want to you can add it in as -1 (second argument ... then it just checks if the building can be built on any planet)
Can you post the save? it would help a lot.
 
Once my population started to increase I had notices that I was getting, in effect, a free specialist per unit of population. This makes the game proceed very fast (especially since I assigned the first two as scientists, greatly increasing my research output).

I noticed that the only use for great people is to start golden ages, which have an undefined effect - it appears to increase production by 50% and commerce by some amount (25%?), as well as +100% great people points and presumably no anarchy (I forgot to change civics during my one golden age so far; I would have had a second before the crash but my second two great people were both scientists). I'm not sure what the AI is using them for as I have not noticed an announcement saying that either of the two I had run into had started a golden age.

My suggestions for making specialists work in a more normal way:
1) In the DLL, "just" deduct the number of population points working planets from the amount available to be specialists.
If this is not easy to do, then consider another method:
2) Add an additional specialist type, the "planetary worker" or whatever (the name doesn't matter since it would never be added to the interface). This would represent population working on the planets. This specialist type would have no output at all, 0 for everything including great people points. The number of them could be forced to be equal to the total population working on the planets. The remaining specialists would then be the number of otherwise unassigned population points (and free specialists, if the ability to get any is ever added).
 
Here is the save. It crashes when clicking the End Turn button.

By the way, I installed FFSK over FF+ v1.32, not regular 1.3. Probably doesn't matter, but figured I should mention it anyway.
 

Attachments

  • FFSK-Crashes.CivBeyondSwordSave
    77.9 KB · Views: 119
Oh, and in case all you think I have are complaints...

The ability to enqueue things to build on different planets is very nice.

Specialists are also a good thing, even if the current number of them seems excessive to me unless the costs of just about everything is increased (research point costs for techs, and build costs for buildings and units) to counter the added output.

The new planet list/selection/population assignment screen looks good, but I do miss the zoomed in view of the system in the city screen a little. Perhaps having the new planet selection part of the screen only cover part of the central view (perhaps the lower half) so the system view still shows up?
 
I actually didn't indent to leave the specialists as they are.
1) In the DLL, "just" deduct the number of population points working planets from the amount available to be specialists.
i have thought about that and if i remember correctly it shouldn't be hard (well eventually ill crack it).
Oh, and in case all you think I have are complaints...
:) i actually posted the mod for complaints (to somewhat motivate myself)
and I am glad you like the city screen. I did it before the moving stuff to dll and i had planned
three types of screens: quick overview (the one in mod) , detailed planet view, and similar to the original one but with reduced "city plots" view and rearranged planet view.
 
Here is the save. It crashes when clicking the End Turn button.

By the way, I installed FFSK over FF+ v1.32, not regular 1.3. Probably doesn't matter, but figured I should mention it anyway.
Thanks. Found the problem... and the FF+ version was actually 1.32 what i meant.
 
Also, I guess no one noticed my question about getting a mod forum for FF+... do you think we need/could use one?

I just looked for one to see if you had specific topics/ subforums for the now two sub-mods. I'm sure it'll be up soon.

Thoughts on FF+:

The speed is the fastest I've ever seen for a mod on my new 8 gig ram & super wooptie grafix card (only on turn 55, 2 player hotseat, huge map w 10 civs total) Virtually instantaneous!

One non-repeatable woc.

I am a stickler for health & happiness. Despite all logic to the contrary I will take pop off early to avoid unhealthiness before I can get resources up.

But whether I have avoid pop growth on or not the next turn will have that removed pop back on the planet with the most food (also the best prod. and com. planet) & will have continued to grow towards the next pop.

It seems there's nothing I can do to avoid unhealth/ happy in this situation because all my planets in the capital have at least 2 food except one tier 3. I have no idea where you would change it so you could micromanage your own pop growth by not working one of your pop points but I would appreciate a change. Or if I'm somehow oblivious please enlighten me.
 
I just looked for one to see if you had specific topics/ subforums for the now two sub-mods. I'm sure it'll be up soon.

Thoughts on FF+:

The speed is the fastest I've ever seen for a mod on my new 8 gig ram & super wooptie grafix card (only on turn 55, 2 player hotseat, huge map w 10 civs total) Virtually instantaneous!

One non-repeatable woc.

I am a stickler for health & happiness. Despite all logic to the contrary I will take pop off early to avoid unhealthiness before I can get resources up.

But whether I have avoid pop growth on or not the next turn will have that removed pop back on the planet with the most food (also the best prod. and com. planet) & will have continued to grow towards the next pop.

It seems there's nothing I can do to avoid unhealth/ happy in this situation because all my planets in the capital have at least 2 food except one tier 3. I have no idea where you would change it so you could micromanage your own pop growth by not working one of your pop points but I would appreciate a change. Or if I'm somehow oblivious please enlighten me.

There is no way to do this in-game at present, I'm afraid.

The AI population assignment logic is rather poor- it prioritizes food until a city is producing more than 3 food, then switches to production. Unless the production is 0- if the production is 0, and food is 2 or greater, the AI prioritizes production.

When I (well, when God-Emperor, whose code I merged in) altered the AI to update city population every turn (to fix the bug where the AI didn't do anything with it's city population until turn 26), I (again, I think this was God-Emperor) removed the check to not update population if avoid growth was on. This was to get the AI updating it's population every turn no matter what. The problem is that the game auto-assigns population for the human player using the same logic. (Perhaps we should add a button to the city screen that stops the game from auto assigning population?)

I just added a bit of code that reassigns the priority yield to either production or commerce if avoid growth is on. So hopefully this should work in the next version.
 
Looking forward to an improvement.:D

One other thing I noticed were some barbs (which don't spawn crazy powerful too fast, 1st time I've seen that work) which had taken damage from moving through radiation clouds, including plowing right into a large field of it to their death. If the AI doesn't get that its damaging doesn't this mean AI civs are prone to the same problem? I realize this is probably a non starter in terms of a bug fix, just thought I should mention it.
 
I've released v1.4!

This is the "Finaler Frontier merge" version (except, as I said, for leaders and traits). I did a clean merge of the two mods, so in addition to new units, promotions, techs, wonders, buildings, etc. any tweaks and other changes that God-Emperor made are now included.

Except giving Scouts 2 movement points. I think we argued over whether that was necessary a while ago and so I didn't want to do it, at least not yet.

There may be bugs due to the merge that I did not find (I eventually, after fixing some things, played 200 turns with no issues, but there might be something I didn't come across).

Also, I added some new XML tags for buildings- planet yield changes and pop cap increases. The only hardcoded bit now left in CvSolarSystem for buildings is the special graphics (the feature dummy tags or whatever they're called).

Full changelog:

-Added unique units and buildings for all civs
-Added new techs/tech changes from Finaler Frontier
-Added new buildings, national wonders, and world wonders
-Added new promotions from Finaler Frontier
-Added Astral Gate Design project as prereq for Astral Gate pieces
-Added God-Emperor's planetary resources
-Added various other tweaks as done in Finaler Frontier
-Added XML tag for building yield changes
-Added XML tag for planet pop cap increase (due to buildings)
-AI now prioritizes yields differently if Ignore Growth is on
-Fixed minor bugs in CvInfos.cpp and CIV4LeaderHeadInfos.xml
-Fixed bug stopping Control-A function from working
-Added missing source file (CyUnitInterface1.cpp)

Looking forward to an improvement.:D

One other thing I noticed were some barbs (which don't spawn crazy powerful too fast, 1st time I've seen that work) which had taken damage from moving through radiation clouds, including plowing right into a large field of it to their death. If the AI doesn't get that its damaging doesn't this mean AI civs are prone to the same problem? I realize this is probably a non starter in terms of a bug fix, just thought I should mention it.

It's possible. I'll look into it.
 
If you have the No Growth option turned on, it will not increase the population. It will assign all the population to work, and if it is producing excess food it will gain food right up to the point where it is about to grow. Then the excess food will be ignored and the growth will not happen. The food storage will remain full. If you then turn off No Growth, one single excess food point is all it takes to get the population increase.

Well, that's what happens in regular FF and in Finaler Frontier (and, more or less, in regular BtS, for that matter). It is likely to be what happens in FF+ too if the related code in the SDK has not been touched.
 
I've released v1.4!

This is the "Finaler Frontier merge" version (except, as I said, for leaders and traits). I did a clean merge of the two mods, so in addition to new units, promotions, techs, wonders, buildings, etc. any tweaks and other changes that God-Emperor made are now included.

Spiffy.

I should have said this before, but there is an experimental thing in Finaler Frontier's Python which probably breaks multiplayer. Fortunately, you seem to have left the most relevant lines of Python out of the merge.

The problematic things are relating to storing who the current player is, the actual purpose of which (in FerF) is to bail out of cannotConstruct in certain cases. I have no idea what this would do to simultaneous turn multiplayer, but it probably isn't good. The whole reason that was added is because of a bug that I don't think I ever mentioned over in the official mod thread. If you get enough espionage points to be able to look into an AI's star system and then do so, it turns out that the cannotConstruct function is run. In normal FF this does not cause a problem, even though it should not be run. There are some things that look like it should prevent it, but one case is still slipping through - I'm pretty sure it is for whatever is currently being built, possibly related to showing the build progress stuff at the top of the display. In Finaler Frontier (and now in FF+) cannotConstruct can cause the current build planet to change, and it can change the planet out from under the AI when the player looks into the system which effectively causes it to loose all production on whatever building it was working on. The actual solution would be to figure out why cannotConstruct is being called and stop it, but I went this route instead (I'm not really sure why anymore). But, as I mentioned above, the actual "if" block that uses this in cannotConstruct did not get merged into FF+ (which is probably a good thing for multiplayer).

So as it currently stands, FF+ almost certainly has the "change the planet out from under the AI so it looses production on the current build when the palyer looks at the AI's city screens" bug. The real fix should probably be done in CvMainInterface.py, so that when the player brings up an AI owned system's city screen the cannotConstruct function is not called wherever the one place is that it still happens.
 
A few notes from my test game, now on turn 170. Mostly it is going OK - aside from this being one of those annoying games where some of the AIs practically gives away techs to the other AIs (at least one of their relationships shows a +4 fair trade bonus, which means giving away a tech, or pretty close to it) but will barely trade with me even though I have the same state value as most of them - the net result is that 3 of them are about 3 techs ahead of me.

In CvFinalFrontierEvents.py updateAllStarbases the aiPossibleUnitList does not have UNIT_MISSILE_Q. (Not really from my test game - I happened to notice it when looking at the differences between FF+ and FerF.) This is not exactly necessary, but it
is a nice little bonus once you get the Quantum Power tech.

In the system preview screen (CvPlanetInfoScreen.py) the planets with
resources do not have the resource symbol appended to the planet name,
or any other indication that they have a resource.

In the city screen the planets with resources also do not have any indication
that they have a resource except an easily overlooked line of text in the
hover-help for the planets (there is so much text displayed, that one more
line of plan text is hard to notice). It would be nice to at least append the
resource symbol to the planet name up in the currently selected planet's
name area just below the resources, and also adding the icon to the line
of text in the hover help might make it more noticeable.
 
A few notes from my test game, now on turn 170. Mostly it is going OK - aside from this being one of those annoying games where some of the AIs practically gives away techs to the other AIs (at least one of their relationships shows a +4 fair trade bonus, which means giving away a tech, or pretty close to it) but will barely trade with me even though I have the same state value as most of them - the net result is that 3 of them are about 3 techs ahead of me.

In CvFinalFrontierEvents.py updateAllStarbases the aiPossibleUnitList does not have UNIT_MISSILE_Q. (Not really from my test game - I happened to notice it when looking at the differences between FF+ and FerF.) This is not exactly necessary, but it
is a nice little bonus once you get the Quantum Power tech.

In the system preview screen (CvPlanetInfoScreen.py) the planets with
resources do not have the resource symbol appended to the planet name,
or any other indication that they have a resource.

In the city screen the planets with resources also do not have any indication
that they have a resource except an easily overlooked line of text in the
hover-help for the planets (there is so much text displayed, that one more
line of plan text is hard to notice). It would be nice to at least append the
resource symbol to the planet name up in the currently selected planet's
name area just below the resources, and also adding the icon to the line
of text in the hover help might make it more noticeable.

I'll add the missile to the updateAllStarbases list.

As for the resources... your solution (that is, adding the character to the planet name) was okay, but I think it was causing a problem with Worldbuilder writing the planet name to a WBS. (I got a weird python exception that a certain character couldn't be written to the WBS until I changed it back).

I will, however, change it to display the icon rather than the name of the resource on the hover-help and add it to the currently selected planet name.

I'll do the same thing in CvPlanetInfoScreen.py.
 
As for the resources... your solution (that is, adding the character to the planet name) was okay, but I think it was causing a problem with Worldbuilder writing the planet name to a WBS. (I got a weird python exception that a certain character couldn't be written to the WBS until I changed it back).

I had wondered if the planet resources would, in general, have problems in the world builder. If you add a resource to a system it would need to pick a planet to give the resource to, and if you remove the resource it needs to remove it from the planet too. I hadn't considered that adding the character after the name could be a problem there, but it doesn't surprise me. The game originally used the self.getName function when saving the data which caused an extra copy to be added each time you loaded a savegame, which is why I switched to direct access of the data field for that instead of using the accessor function.

I will, however, change it to display the icon rather than the name of the resource on the hover-help and add it to the currently selected planet name.

I'll do the same thing in CvPlanetInfoScreen.py.

In my local copy I have already done this in these 3 places (using it as a prefix in to the line of text in the hover help, like a bullet - makes it stand out pretty well), including adding it to the currently selected planet's name display. No more wondering which planet has the resource (you can figure it out by looking at the yields, if you can remember what all the planet types have as their normal yields).

Here's a copy of my changed files:

EDIT: attachment removed due to silly cut'n'paste error introduced after I tested the thing.
 
I had wondered if the planet resources would, in general, have problems in the world builder. If you add a resource to a system it would need to pick a planet to give the resource to, and if you remove the resource it needs to remove it from the planet too. I hadn't considered that adding the character after the name could be a problem there, but it doesn't surprise me. The game originally used the self.getName function when saving the data which caused an extra copy to be added each time you loaded a savegame, which is why I switched to direct access of the data field for that instead of using the accessor function.

In my local copy I have already done this in these 3 places (using it as a prefix in to the line of text in the hover help, like a bullet - makes it stand out pretty well), including adding it to the currently selected planet's name display. No more wondering which planet has the resource (you can figure it out by looking at the yields, if you can remember what all the planet types have as their normal yields).

One of the changes I made for v1.4 for planetary resources was adding them to the data saved in a WBS (right after the "PlanetName" field there is a "BonusType" field).

I probably should mention that somewhere, maybe in the Modders' Notes.

Thank you for the files! I'll probably put out a "v1.41" with that and the Q-Missile added to the Starbase spawning list. And maybe other things, if other issues arrise.
 
Argh!

The files I posted included an error in CvPlanetInfoScreen.py - it turns out that the cut and paste operation I did to this file was wrong in a couple of different ways. I could have swore I made the changes before my last test, but clearly not (I suspect that I made the changes in the editor but didn't save the file before running the test).

Here's a corrected version, in case anybody wants it. Contents are the same: 3 python files that replace the ones in the mod (1 in the Python folder, 2 in the Screens subfolder of that one) plus a text file that lists the changes.

Edit: These changes are in the FF+ release as of version 1.41.
 

Attachments

  • FFP-1-4-b.zip
    35.2 KB · Views: 87
So here I am playing my test game when I notice something a bit odd...

What's wrong with this picture?
Spoiler :


(I mean, other than it having a ridiculously large population, it was 31 before I captured it. I seriously doubt that Halis had enough happy for 31 population - I sure don't - and he wasn't running Green economy for the extra +1 pop/planet like I am so there is no way that anything near that could have been working the planets. One of his other cities that I captured was at 32. Various other AI cities are also strangely large - the Avowers have one at 33. My biggest is currently 18, but growing fast now that they forced everyone into Utopia via the United Planets vote. I think I have made Utopia a little bit too good from the AI's point of view as I think all of them were running it before the vote. It's probably the +1 happy in your largest cities that did it.)

Spoiler :
So I checked and, sure enough, in CIV4BuildingInfos.xml you find that BUILDING_CAPITOL has iConquestProb set to 50. Net result: 50% of the time it won't destroy a captured capitol building. All of the national wonders (BUILDING_HEROIC_EPIC, BUILDING_NATIONAL_EPIC, BUILDING_OXFORD_UNIVERSITY, BUILDING_WALL_STREET, BUILDING_WEST_POINT, BUILDING_GREAT_PALACE) also have it set to 50 except BUILDING_IRON_WORKS, which has it set to 100. These should all be 0. I'm a little surprised this is the case - I thought it wouldn't let you exceed the numerical limit, 1 in this case, even when you capture the building, not just when building them.

Also, BUILDING_GRANARY (the Cryogenic Granary), BUILDING_NANOTECH_HOSPITAL, BUILDING_FLIGHT_SCHOOL, BUILDING_LUNAR_BASE, all the various UBs, and the 6 planetary resource related buildings all have it set to 100, but should probably be at 50.
 

Attachments

  • Civ4ScreenShot0013.JPG
    Civ4ScreenShot0013.JPG
    203.1 KB · Views: 492
I have reviewed all the iConquestProb values in CIV4BuildingInfos.xml and made many adjustments. Attached below is the update.

Most of the changes make them match regular FF values but I made 3 more of the level-2 buildings have a 0 value for this so that they match the way Commercial Satellites are 0, specifically the Research Lab, Spaceport, and Manufacturing Plant (which had a 50% survival chance in FF). All national wonders (including the Palace) are set to 0. All UBs match the non-UB versions. All 6 of the planetary resource related buildings are set to 50.

This should be a better set, but there could still be some adjustments made like it might be better if the 6 resource related buildings were set to 0. We could also go with values other than 0, 50, and 100 for some of them - for example, perhaps the level-2 buildings (including the Commercial Satellites) could be at 25 or 30 instead of 0.

I also noticed that the Omega Invasion Ship was not set to do any collateral damage. I have also included a CIV4UnitInfos.xml with iCollateralDamage set to 25 for this ship, matching the two earlier generations.

Edit: These changes are in the FF+ release as of version 1.41.
 

Attachments

  • FFP-1-4-c.zip
    29.8 KB · Views: 119
Top Bottom