Which Tag in Civ4TechInfos.xml determines the order? Could you explain that please or somebody else?
From this post by DaviddesJ and looking at the XML file, here's what I understand.
For any particular great person type, first sort the techs by their flavor value and then sort ties by the order the techs appear in the file.
For example, the religion flavor values for a few techs (in file order):
- Mysticism: 9
- Meditation: 10
- Polytheism: 10
- Priesthood: 10
- Monotheism: 10
- Monarchy: 4
- Literature: 4
- Code of Laws: 7
Sorting by value, file-order gives
- Meditation
- Polytheism
- Priesthood
- Monotheism
- Mysticism
- Code of Laws
- Monarchy
- Literature
Yay, they are in the correct order. Note that some intervening techs are missing, like Theology, Divine Right, Masony, and Civil Service, but this is because I left them out of the file list. They have flavor values that would place them among the techs I have listed, even though they appear later in the file.
The above techs are the only ones I tested by looking at the file.
One mod idea I'd like to pursue is to put this information into Sevopedia, but I'm wrestling with how.
The easier way is to list the previous and next techs prefered by each great person type.
For example, when looking at Civil Service, you'd see
- Scientist: Music / Democracy
- Prophet: Code of Laws / Monarchy
- Artist: Metal Casting / Guilds
- Merchant: Monarchy / Guilds
- Engineer: Optics / Nationalism
If you were expecting a Great Scientist and wanted to pop for Civil Service, you'd need to know that you either have every higher-valued tech or that you couldn't research them presently (lacking prerequisites).
The above mod would help you backtrack along the path, but would require a bit of busy-work for the player.
A better solution would drive at answering the key question:
what must I research and/or avoid researching so that I can pop for this tech?
Can anyone explain what information to display to answer this question?
Continuing the example using a GS and Civil Service, assume you have every tech higher in the list except Music. To avoid popping for Music, you must avoid having Music's prerequisites. Both require Mathematics, but Music also requires Literature or Drama. Thus you must avoid researching Literature or Drama as either would open up Music.
Figuring this out is a PITA using the first method I described. It would be better to list this information on both Literature and Drama using your current known technologies.
- It knows Civil Service is the next tech in line for a GS because you cannot research or have researched all techs prefered by the GS.
- It knows Music is higher in the list.
- It knows that Literature is a prerequisite.
- It would say on Literature: "This tech will allow GS to help research Music rather than Civil Service."
It would need to say the same thing for Drama, and in the case where a tech had two required prerequisites say so. (If you had to have
both Drama and Literature it would say, "This tech along with Drama will allow GS to help research Music rather than Civil Service.")
For bonus points, on Civil Service it would say, "Drama or Literature would allow GS to help research Music." I think this is less important, and it would be complicated if there were many missing techs higher in the list.
Is there a better way to represent this information in-game? I'm up for a challenge! I think I could bang this out in Python without too much difficulty if we can think of a way to accurately and clearly present the information. It's all there in the XML and TechInfo objects.