Caveman 2 Cosmos (ideas/discussions thread)

Are we now pandering to the "Historically correct group again"? This is supposed to be a What If Mod, not Realism Invictus. Or did SO want us to move to the More accurate history mod group?
I wouldn't call it pandering. I explained why even a person who has a desire to have as much historical accuracy being represented could still see that as being expressed here from a particular light. I wasn't urging us to agree to any changes based on the argument for historical accuracy. You also make a good point that Neanderthals didn't necessarily have to go extinct and I've often thought eventually we might want to make units for them to go all throughout history to modern and beyond in case they somehow avoided it. But right now, we've considered their 'extinction' to be inevitable primarily because they interbreed with us to the point of becoming undifferentiated after a time. I'm not sure its wise to change that assumption because I'm not sure that wasn't inevitable anyhow. AKA, they were so genetically compatible and similar that only strongly held geographical separation could've kept them pure, like maybe if they developed on another planet from us. In essence, they ARE human, just a slightly differently adapted human and after population grows to a point, they would've melted into our gene pool no matter what.
 
This weapon would have changed history and could have been built by the 1300s, possibly a lot sooner.
Yet it was only invented now. A perfect addition as an alternate history unit.
 
This weapon would have changed history and could have been built by the 1300s, possibly a lot sooner.
Yet it was only invented now. A perfect addition as an alternate history unit.
That's really cool! Would certainly take some interesting artwork.
 
why is it the only thing i can use on a fossil bed is a fort??
 

Attachments

  • fossel.JPG
    fossel.JPG
    417.9 KB · Views: 173
Paleontology tech is needed to build Fossil Dig Site (its resource tech enable too).
Geology only reveals this resource.

You can use pedia to check on various stuff - its very fast.
 
Last edited:
Manganese is a map resource now but there is also a building that provides it, Mine (Manganese), which needs Lead and Iron. Maybe an oversight and the Mine (Manganese) can be removed, but then Salt also can be produced in a number of ways...
Manganese always was map resource too, it was water resource before change.
 
There are lateish game miracle mine buildings that let you mine things that aren't there.
 
Yes, but does it make sense to have it both as a map and as a produced resource, the only metal in the game as far as I know?
Originally manganese was meant to be obtainable only by building until later part of game where you could extract it.
 
A question about the tech Tree.
A few tech speed up other techs, or so it states in their descriptions. That's fine and dandy but why would Carpentry speed up Tribalism and Arithmetics when you need Carpentry in the first place to even get to either Tribalism or Arithmetics?
Having side techs speed each other up makes sense, we know this so that makes this easier, but prerequisite techs are there so one can at all learn the next, like Carpentry for Tribalism and Arithmetics.
 
A few tech speed up other techs, or so it states in their descriptions.
I too am interested in why the description says this, but I think it is more likely a oversight that hasn't been fixed yet.

Some history: Civ4 had techs like Pottery, for example, that had required prerequisites, and also "OR prerequisites". In Pottery's case, The Wheel was required, but Either Fishing or Agriculture were required, before Pottery could be researched. All three could be researched first, but only two Had to be... as long as one of them was The Wheel. There were a lot of these sorts of things.
When one extra "OR prerequisite" had been researched, like in our example if all three had already been researched, then all research into Pottery would be sped by an additional 20%. 20% is nothing to sneeze at, and is one of the multiple penalties of the 'beeline' or researching costlier technologies before finishing the ones that are cheaper first. (Another one is that, if your neighbors know the tech you are researching, you get a bonus researching it).
Problem is, this mechanic wasn't documented anywhere. So, the makers of the BUG mod (and others, I just don't know who right now) felt to make that information more obvious, by pointing out which techs were sped by which, in the mouseover descriptions of both. They weren't specific by how much the research was sped, they only included the message you see.
BUG, together with this message, was pulled into C2C, and there remain a few optional techs, but they aren't the same. As near as I can tell, the current iteration of the tech tree contains absolutely no "OR" prerequisites. This, by itself, changes the strategy for research, and I am not sure I like it, but that is probably a discussion for another time.

What interests me is, when BUG tells us that a tech is sped up by another tech, is this just a misreading the XML tags for tech requirements, or is the game actually speeding research for techs with multiple requirements (Tribalism is a great example here). It doesn't look like it to me, but I would like to be clear on that.
 
I think the Theory of Relativity must be a team project as the Theory of Everything and the Theory of Evolution
 
There are quite a few cases of single OR requirements. That is because OR requirements draw arrows, whereas AND requirements "only" give an icon. So to make tech tree better understandable, these single OR requirements were introduced (I think even vanilla took that approach).

The problem is: Whenever there is an OR requirement, you get the "speeds up" text. The alternative would be to use AND requirements whenever there are no alternatives, and that would make the tech tree almost unreadable.
 
It could be dead text - that is all bark and no bite.

CvGameTextMgr.cpp
Code:
// BUG - Show Sped-Up Techs - start
    if (bPlayerContext && getBugOptionBOOL("MiscHover__SpedUpTechs", true, "BUG_SPED_UP_TECHS_HOVER"))
    {
        CvPlayer& player = GET_PLAYER(GC.getGame().getActivePlayer());

        // techs that speed this one up
        bool bFirst = true;
        for (int iJ = 0; iJ < GC.getNUM_OR_TECH_PREREQS(); iJ++)
        {
            TechTypes ePrereqTech = (TechTypes)GC.getTechInfo(eTech).getPrereqOrTechs(iJ);
            if (ePrereqTech != NO_TECH && player.canResearch(ePrereqTech))
            {
                szTempBuffer.Format( SETCOLR L"<link=%s>%s</link>" ENDCOLR , TEXT_COLOR("COLOR_TECH_TEXT"), CvWString(GC.getTechInfo(ePrereqTech).getType()).GetCString(), GC.getTechInfo(ePrereqTech).getDescription());
                setListHelp(szBuffer, gDLL->getText("TXT_KEY_MISC_SPED_UP_BY").c_str(), szTempBuffer, L", ", bFirst);
                bFirst = false;
            }
        }

        // techs sped up by this one
        bFirst = true;
        for (int iI = 0; iI < GC.getNumTechInfos(); ++iI)
        {
            if (player.canResearch((TechTypes)iI))
            {
                bool bTechFound = false;

                if (!bTechFound)
                {
                    for (int iJ = 0; iJ < GC.getNUM_OR_TECH_PREREQS(); iJ++)
                    {
                        if (GC.getTechInfo((TechTypes) iI).getPrereqOrTechs(iJ) == eTech)
                        {
                            bTechFound = true;
                            break;
                        }
                    }
                }

                if (!bTechFound)
                {
                    for (int iJ = 0; iJ < GC.getNUM_AND_TECH_PREREQS(); iJ++)
                    {
                        if (GC.getTechInfo((TechTypes) iI).getPrereqAndTechs(iJ) == eTech)
                        {
                            bTechFound = true;
                            break;
                        }
                    }
                }

                if (bTechFound)
                {
                    szTempBuffer.Format( SETCOLR L"<link=%s>%s</link>" ENDCOLR , TEXT_COLOR("COLOR_TECH_TEXT"), CvWString(GC.getTechInfo((TechTypes)iI).getType()).GetCString(), GC.getTechInfo((TechTypes) iI).getDescription());
                    setListHelp(szBuffer, gDLL->getText("TXT_KEY_MISC_SPEEDS_UP").c_str(), szTempBuffer, L", ", bFirst);
                    bFirst = false;
                }
            }
        }
    }
// BUG - Show Sped-Up Techs - end
 
It could be dead text - that is all bark and no bite.

CvGameTextMgr.cpp
Code:
// BUG - Show Sped-Up Techs - start
    if (bPlayerContext && getBugOptionBOOL("MiscHover__SpedUpTechs", true, "BUG_SPED_UP_TECHS_HOVER"))
    {
        CvPlayer& player = GET_PLAYER(GC.getGame().getActivePlayer());

        // techs that speed this one up
        bool bFirst = true;
        for (int iJ = 0; iJ < GC.getNUM_OR_TECH_PREREQS(); iJ++)
        {
            TechTypes ePrereqTech = (TechTypes)GC.getTechInfo(eTech).getPrereqOrTechs(iJ);
            if (ePrereqTech != NO_TECH && player.canResearch(ePrereqTech))
            {
                szTempBuffer.Format( SETCOLR L"<link=%s>%s</link>" ENDCOLR , TEXT_COLOR("COLOR_TECH_TEXT"), CvWString(GC.getTechInfo(ePrereqTech).getType()).GetCString(), GC.getTechInfo(ePrereqTech).getDescription());
                setListHelp(szBuffer, gDLL->getText("TXT_KEY_MISC_SPED_UP_BY").c_str(), szTempBuffer, L", ", bFirst);
                bFirst = false;
            }
        }

        // techs sped up by this one
        bFirst = true;
        for (int iI = 0; iI < GC.getNumTechInfos(); ++iI)
        {
            if (player.canResearch((TechTypes)iI))
            {
                bool bTechFound = false;

                if (!bTechFound)
                {
                    for (int iJ = 0; iJ < GC.getNUM_OR_TECH_PREREQS(); iJ++)
                    {
                        if (GC.getTechInfo((TechTypes) iI).getPrereqOrTechs(iJ) == eTech)
                        {
                            bTechFound = true;
                            break;
                        }
                    }
                }

                if (!bTechFound)
                {
                    for (int iJ = 0; iJ < GC.getNUM_AND_TECH_PREREQS(); iJ++)
                    {
                        if (GC.getTechInfo((TechTypes) iI).getPrereqAndTechs(iJ) == eTech)
                        {
                            bTechFound = true;
                            break;
                        }
                    }
                }

                if (bTechFound)
                {
                    szTempBuffer.Format( SETCOLR L"<link=%s>%s</link>" ENDCOLR , TEXT_COLOR("COLOR_TECH_TEXT"), CvWString(GC.getTechInfo((TechTypes)iI).getType()).GetCString(), GC.getTechInfo((TechTypes) iI).getDescription());
                    setListHelp(szBuffer, gDLL->getText("TXT_KEY_MISC_SPEEDS_UP").c_str(), szTempBuffer, L", ", bFirst);
                    bFirst = false;
                }
            }
        }
    }
// BUG - Show Sped-Up Techs - end
I'm thinking you're right. The place to check would be in how the game tallies the tech costs and I don't remember ANYTHING in that which diminishes the cost of a tech, nor anything in the tallying of total research income, that is depending on this sort of OR relationship.
There are quite a few cases of single OR requirements. That is because OR requirements draw arrows, whereas AND requirements "only" give an icon. So to make tech tree better understandable, these single OR requirements were introduced (I think even vanilla took that approach).

The problem is: Whenever there is an OR requirement, you get the "speeds up" text. The alternative would be to use AND requirements whenever there are no alternatives, and that would make the tech tree almost unreadable.
Just to clarify, it is the FIRST OR requirement that gives the arrow and it's really an AND requirement that is the first of a single optional OR set.
 
I'm thinking you're right. The place to check would be in how the game tallies the tech costs and I don't remember ANYTHING in that which diminishes the cost of a tech, nor anything in the tallying of total research income, that is depending on this sort of OR relationship.

Just to clarify, it is the FIRST OR requirement that gives the arrow and it's really an AND requirement that is the first of a single optional OR set.
There were three globals that were most likely related to this, and are unused.

Deleted those too.
 
Is it possible for autobuilds to require more than one property? I was thinking that some crimes, for example, might have a criminal and an education requirement (organized and white collar crimes and the like). It could negate the requirement for doing up the corruption property that's been talked about, although I'm assuming that such a property is only for white collar crimes
 
Top Bottom