RFC Greek World UHV Project

Edmund Ironside

White Rabbit Object
Joined
Jun 27, 2017
Messages
1,351
Location
Michigan, USA.
My aim is to have a functional UHV for every civilization in RFCGW by the end of this summer.
I will update this opening post with my progress, and will post any questions or issues I have with coding in this thread (I don't want to fill up the main 'Welcome to the Rhye's and Fall of the Greek World' thread with questions regarding UHVs).

UHVs will all be tested to ensure they are functional, however they aren't currently being tested to see if they are balanced. So it is possible they may be too easy or too hard. Any feedback on UHV balance will be appreciated.

Etruscans 3/3 UHVs completed & added to mod.
Nubia 3/3 UHVs completed & added to mod.
Persia 3/3 UHVs completed & added to mod.
Rome 3/3 UHVs completed - not merged yet.
Macedonia 3/3 UHVs completed - not merged yet.
India 0/3 UHVs completed.
Bactria 0/3 UHVs completed.
Numidia 0/3 UHVs completed.
Germania 0/3 UHVs completed.
Sassanid 0/3 UHVs completed.
Byzantium 0/3 UHVs completed.
Huns 0/3 UHVs completed.

Redo:
Etruscan UHVs
Israel UHV2
 
Last edited:
Thanks for your efforts. It would take ages to finish all UHVs myself at my current pace...

Just tested the Etruscan UHVs. The first one kind of feels like a freebie, got 1k gold by 536 BC just by settling a city and setting research to 0%. Maybe even 2k would be possible. (Provided you survive the Roman spawn...)

The second UHV has a bug where the text says it has to be reached by 270 BC but the actual code checks if it's reached in 671 BC. I assume your intention was the former?

(The final UHV looks fine to me.)
 
Just tested the Etruscan UHVs. The first one kind of feels like a freebie, got 1k gold by 536 BC just by settling a city and setting research to 0%. Maybe even 2k would be possible. (Provided you survive the Roman spawn...)

I've changed it to 2000.

The second UHV has a bug where the text says it has to be reached by 270 BC but the actual code checks if it's reached in 671 BC. I assume your intention was the former?

Yeah it should be 270 BC. When I test UHVs I normally use a much earlier date to just check it functions. I've updated it, the text for this UHV was wrong as well. It should have said "Control 4 cities in Italia, and 1 in Venetia and Corsica in 270 BC"
When I next do a pull request these things will be fixed.
On the subject of pull requests how often do you want me to submit them? Every time I complete a UHV or less frequently then that?
 
Yeah, separate pull requests for every civ would be ideal. Also, you don't have to open a new pull request if you just push the fixes on the (default) master branch, the current one should be updated automatically.

While we're at it, it looks like you're using the Github web UI to upload changes. Which I guess works, but you might want to look into switching to a proper git client like TortoiseGit or Github Desktop, they are a lot more convenient. Leoreth's guide should help.
 
While we're at it, it looks like you're using the Github web UI to upload changes. Which I guess works, but you might want to look into switching to a proper git client like TortoiseGit or Github Desktop, they are a lot more convenient. Leoreth's guide should help.

I download using tortoise git, but when I try to push using it, it asks for my github username and password, but then rejects them. :undecide:
I'm sure I am screwing something up, but am not sure what. Kind of pleased I am able to get Github web UI to at least work!
 
Fairly inevitably I have run into a coding issue.

The goal was "Make sure that at least one of every great person type is settled in Meroe by 350 AD."

I copied the UHV from RFCA and tried to make adjustments, but fairly predictably it doesn't work.

Code:
            if (self.getGoal(iNubia, 1) == -1):
                    bAllGSpecialists = True
                    for iGSpecialist in [7, 8, 9, 10, 11, 12, 13]:
                            if ( iNubia.getFreeSpecialistCount(iGSpecialist) <= 0 ):
                                    print (iGSpecialist, "nicht vorhanden")
                                    bAllGSpecialists = False
                                    break
                                                
                    if (bAllGSpecialists):
                            self.setGoal(iNubia, 1, 1)

I don't think freespecialist is defined which might be one of the reasons why the code doesn't function.
 
@bluepotato I submitted a new pull request for Nubia & Persia UHVs, though 2 of the UHVs sadly are not working currently.
 
I'll get the non-functioning ones working (then merge) when I have a bit more time.

Sounds good, let me know when you have had chance to merge them.
 
Hey bluepotato, have you had a chance to merge these yet?

Sorry for taking so long again :( things didn't exactly go as I planned. Anyways, I have pushed fixed versions of the UHVs. Note that I only tested the second UHVs via the WB (the others I didn't test at all.)
By the way, the Nubian UHV2 is not well defined, because there are several plots called Meroe. For now I made it so it checks the Meroe with the greatest population, but this may have unexpected results in some cases...
Anyways, we should probably rethink this. One idea is to make the goal be something like "build a new palace in your core, and settle every kind of GP in the same city", which might represent the dynasty changes better (and is more clear.)
 
Glad you are back. Do you think you might be sticking around for a while? If so I will get back to work on trying to get the UHVs finished.
By the way I recently played the Mycenae campaign. Everything worked well, however there was a bug on the UHV for ensuring no barbarians on Anatolia, see below.

Traceback (most recent call last):

File "CvEventInterface", line 23, in onEvent

File "CvEventManager", line 196, in handleEvent

File "CvEventManager", line 382, in onBeginPlayerTurn

File "Victory", line 606, in checkPlayerTurn

RuntimeError: unidentifiable C++ exception
ERR: Python function onEvent failed, module CvEventInterface
 
Glad you are back. Do you think you might be sticking around for a while? If so I will get back to work on trying to get the UHVs finished.

Hopefully yes. At the very least I also want the UHVs to be complete, and would appreciate your help.
(I've also been trying to get the AdvCiv merge branch working again, but so far it CtDs on launch, so no promises on that front... :p)

By the way I recently played the Mycenae campaign. Everything worked well, however there was a bug on the UHV for ensuring no barbarians on Anatolia, see below.

I took a look at the code and I think (hope) I found the bug. Do you still have a save? It would be nice to confirm it wasn't caused by something else.
 
Here is a save a couple of turns prior to the error. I was playing around with it, and the error seems common but not 100% consistant. I did sometimes see the UHV correctly change to 'NO' and no error message appear.
 

Attachments

  • Edmund2.CivBeyondSwordSave
    201.1 KB · Views: 7
Thanks, should be fixed in the latest commit.

(The error happens because I forgot that CvRFCProvince::getNumCities could be called with NO_PLAYER, and in this case one Independent civ is dead so we end up doing so.
Note that your save isn't compatible with the current revision; a workaround in the old version is to give the missing Independents a city in the WB.)
 
Time to start working on UHVs again, and the next one is a big one, "Alea iacta est!"

I also might change one of the Israelites UHVs (ie make it about settling great prophets rather than spreading religion).
 
Rome's UHVs are finished. How frequently do you want me to do pull requests @bluepotato ? After every completed set of UHVs, or after 2 or 3 sets of completed UHVs?
 
Pull Request completed for Rome & Macedonia UHVs.
Once @bluepotato has had a chance to merge them I will start working on the contents of the next pull request which will be:
India UHVs
Modified Israel UHV
Modified Etruscan UHVs
Removing copper as a requirement for Etruscan special unit.

Note on Roman & Macedonia UHVs
Yes, I used the have the highest point score as a UHV yet again. I did this for 3 reasons:
1. I happen to really like this style of UHV
2. It suits the Civs, as they were both the top dogs for a while
3. It is easy to code

However after these two I will probably use it only once or maybe twice more at most.
 
Pull Request completed for Rome & Macedonia UHVs.
Thank you for your work. It might take me until next week to get it merged, as I don't have access to my pc right now.
On when to make PRs: whenever you feel like you have something ready :) My only request is to upload your changes every time you finish a set of UHVs, so github makes a separate commit for each. (It's not a tragedy if you don't, it just makes debugging a bit easier).
 
Top Bottom