Dawn of Civilization - an RFC modmod by Leoreth

Status
Not open for further replies.
Leoreth, Will you be adding more comprehensive war mechanics for East Asia; like if certain conditions are met there is a chance that war is declared between two countries; now i'm not exactly comprehensive on East Asia history but even i can think of some examples:

-Japan has a random chance of declares war on Korea (the required field are in bold) if following conditions are met: (To represent http://en.wikipedia.org/wiki/Japanese_invasions_of_Korea_(1592–1598))

From most Important to Least Important:
-Timeperiod- 1300-1600
-Korea is a vassal of China
-Korea converts to Buddhism
-Japan controls all of its own mainland.

Effects:
Japan declares war on China and Korea and receives 3 naval units (depending on tech).

-China has a random chance of declaring war on Vietnam (Khmer) or Korea if the following conditions are met (to represent the various wars fought by Vietnam and Korea in order to free themselves of Chinese Influence):

From most important:
-300BCE to 1700 Ad
-Vietnam/Korea refuses tribute or trade
-Relations between the two are hostile
-etc
-etc

-Same thing can be done to represent the Japanese Colonial Empire:

Conditions:
-Timeperiod 1800-1960
-Japan is in Industrial Age
-Japan needs resources
-Japan is more or nearly as powerful as China.
-etc
-etc

Effects: Japan declares war on certain civ in addtion to a troop bonuses.

Please do suggest any other conflicts that you have knowledge of

I am recommending this system not only for Asia but for the rest of the world too. The reason im reccomending it is to represent historical conflicts without scripting anything. These kinds of wars will really spice up the game. The way it would work is that if any of these conditions are met there would be a small chance of war; the more conditions are met the greater the chance of war but war would never become inevitable and the date never predictable.
 
Alas. I'm pretty sure I could re-do that map by hand, if need be.
It would be even better if you could take a look at what I've done already and point out the major differences.

Well, you can add an extra Fish to Antiocheia and Trebizond, or Grassland some of the tiles right next to them. Right now, Ikonion survives on Wheat, Trebizond - on Sheep and Antiocheia - on another Wheat, but all other tiles around them are food-poor. And the overlap between 'Nople and Ikonyon is two-three tiles only anyway.
Hmm ... the only thing I could see is replacing some hills with flatland.

Leoreth, Will you be adding more comprehensive war mechanics for East Asia; like if certain conditions are met there is a chance that war is declared between two countries; now i'm not exactly comprehensive on East Asia history but even i can think of some examples:
Not going to happen.
 
Not going to happen.

Why?, I mean you don't have to represent every single war but it be nice to have some major ones occur if certain conditions are met. Are u worried that it is too scripted?


Its funny because I got my idea from what seems to be a misinterpretation of ur idea?
add events for actual historical events (e.g. major wars like the Thirty Years War, War of the Spanish succession etc.) or related quests

If these arent semi conditional war; what do u mean by this?
 
Leoreth, you might find this to be of some interest. I would think it'd fix some of the crappier AI decisions on settling cities

In other news, yesterday I found (and fixed) a truly remarkable bug from the original BtS code. I was shocked and amazed when I found it. The bug essentially prevented AI settlers from ever walking towards the same destination two turns in a row. The bug was forcing them to alternate between possible city sites every turn. It's a wonder that they ever managed to get anywhere useful at all!

Here's how the bug came about:
AI_settleMove() is what is used to move settlers. It checks a bunch of stuff, and then calls AI_found() if it wants the settler to find somewhere to settle. AI_found() does some rough evaluation of where it should send the settler, including the following condition:
Code:
if (GET_PLAYER(getOwnerINLINE()).AI_plotTargetMissionAIs(pCitySitePlot, MISSIONAI_FOUND, getGroup()) == 0)
That line basically says "if we already have a settler targeting this site, then we shouldn't go there." It sounds like a fair enough statement, except that it could be this settler that was told to go to the site on the previous turn.

So the AI is doing all these calculations to work out the best site, and then it start going to the site; but on the next turn it has to pick a different site because the first site has a settler going to it already...

To fix the bug, I didn't remove that condition, because that could result in multiple settlers going to the same site. Instead, I added some stuff to AI_settleMove() to tell the AI to continue previous missions rather than trying to find a new best site. Here's what my new code in AI_settleMove() looks like.
Code:
	if (plot() == pCitySitePlot)
	{
		if (canFound(plot()))
		{
			if( gUnitLogLevel >= 2 )
			{
				logBBAI("    Settler founding in place since it's at a city site %d, %d", getX_INLINE(), getY_INLINE());
			}

			getGroup()->pushMission(MISSION_FOUND);
			return;					
		}
	}
	// K-Mod. If we are already heading to this site, then keep going!
	// This change fixes a bug which prevented settlers from targetting the same site two turns in a row!
	else
	{
		CvPlot* pMissionPlot = getGroup()->AI_getMissionAIPlot();
		if (pMissionPlot == pCitySitePlot && getGroup()->AI_getMissionAIType() == MISSIONAI_FOUND)
		{
			// safety check. (cf. conditions in AI_found)
			if (getGroup()->canDefend() || GET_PLAYER(getOwnerINLINE()).AI_plotTargetMissionAIs(pMissionPlot, MISSIONAI_GUARD_CITY) > 0)
			{
				if( gUnitLogLevel >= 2 )
				{
					logBBAI("    Settler continuing mission to %d, %d", pCitySitePlot->getX_INLINE(), pCitySitePlot->getY_INLINE());
				}
				CvPlot* pEndTurnPlot = getPathEndTurnPlot();
				getGroup()->pushMission(MISSION_MOVE_TO, pEndTurnPlot->getX(), pEndTurnPlot->getY(), MOVE_SAFE_TERRITORY, false, false, MISSIONAI_FOUND, pCitySitePlot);
				return;
			}
		}
	}
	// K-Mod end
	iAreaBestFoundValue = std::max(iAreaBestFoundValue, pCitySitePlot->getFoundValue(getOwnerINLINE()));
 
After some technical delay, here we are:

Spoiler :
attachment.php

Here's your India as it is.

attachment.php

This is India, with Kairob's additions (and a few of mine, for geographical accuracy). More plains, less deserts, the Indus is now fertile instead of a festering swamp, plus more rivers, a part of the aforementioned geographical accuracy. Not sure if the Indus tributary is overkill or not.

If India is to be divided up, then the enhanced richness should make up for it. As so many others have pointed out, India was a very advanced place until the 17th century or so. But that's my opinion, do what you think is necessary.

attachment.php

Same India, with resource tags. There is indeed a spice on Sri Lanka, for its cinnamon. Added a woods so you could build a city there.
 

Attachments

  • India 01.jpg
    India 01.jpg
    357.4 KB · Views: 349
  • India 02.jpg
    India 02.jpg
    360.2 KB · Views: 354
  • India 03.jpg
    India 03.jpg
    374.2 KB · Views: 356
Do mine eyes deceive me, or are there flood plains on the grass?
 
Very nicely done, AOS9001. I think Lahore would make a logical spawn point for the Delhi Sultanate/Mughal Empire, and I think that corresponds to the wheat tile in Punjab, so maybe that should be moved 1 SW.
 
@Linkman: Thanks for noting the settler AI thing, will incorporate it soon.

@AOS9001: That looks really good! I can't see anything wrong with your suggestion, and will use it after I've added the Mughals. But first I'll add them, it's easier to judge how things will work out after they're in.

@dragodon64: Actually I intended the Delhi Sultanate to spawn in, well, Delhi :lol: Main reason for that is that the Indian AI doesn't found it in 3000 BC, so this is a good way to make sure it's there.
 
removed continent boundaries to help the AI
I wonder did it actually have a small subtle negative effect on the AI, since it has a bug which makes it unable to use ships to transport settlers to tiles on the same continent. For instance, I was surprised that I was able to reclaim Algeria so late in my Byzantine game. In standard RFC, it would probably be already settled by Spain. Or did you already fix it, and this was just a fluke?

Since you have events that spawn European colonies in India, the effect would not be that bad, though.
 
I have an idea regarding Japanese UP which will also simulate the "westernisation" of Japan.

Make Japanese research rate sluggish in pre-industrial era. And then, once Japan enters Industrial age, let it's UP kick in and that UP will be that Japan is automatically granted all the technologies known to atleast 2 (or 3, depending on which suits game balance better) other known civilizations as well as a boost for it's research rate from then onwards. So, it will be sort of like a Technological equivalent to Germany's UP. And it will simulate Japan's sudden rise as a great power as well.
 
State Property overpowered. I played China, Spain, America and Aztecs, once I changed into state property, I never change it again. Capitalism / free market are no match, and I stayed representation too, parliamentism sucks and is unstable, only +1 hammer for towns? No match to representation.

My suggestion:

+2-3 gold from towns with parliamentism.

With state property, production rate degrades gradually after the first 10 turns, for example, -1% production per turn. This can represent the ever growing bureaucracy and lack of effiency.
 
We need a lot more corporate spread, by 1760 as Spain controlling 15+ resources for the trade company I saw no corporations
 
Status
Not open for further replies.
Back
Top Bottom