[MOD] Age of Discovery II

v1.03 Released!

See the first post for DL and updated changelog. :)
 
Wooot!

Testing it now. [updating this post]

*The two new Victory Conditions should not be all caps in startup.
*Add american animals :).
*Portugues should switch traits (civ trait first, leader trait second).
*Founded City - text alert pointing on wrong plot (and other achivements ).
*Pirated does not settle in beginning (fist chasing other ships).
*Show more achivements in same page (alot of free space).
 
Wooot!

Testing it now. [updating this post]

*The two new Victory Conditions should not be all caps in startup.

Yeah I noted that too (custom game screen for those not following).

*Add american animals :).

Considering it. ;)

*Portugues should switch traits (civ trait first, leader trait second).

I don't get what you mean here.

*Founded City - text alert pointing on wrong plot (and other achivements ).

Hmmm..... will take closer note.

*Pirated does not settle in beginning (fist chasing other ships).

I just finished a game where Pirates finished with 6 colonies! They play different each game I've noticed. One game they'll trash your navy, the next they'll settle and grow. I like this, so may not change it. :)

*Show more achivements in same page (alot of free space).

Not sure I agree here. But I'll put it low-down on the "look into" list. :)
 
All other civs has their civ trait first in the "Play Now".

Ok noted, thanks. Though I gotta say that's wierd. Didn't think I did anything to affect that. :)
 
So are you saying that your central city is not producing enough food (thus storage would normally drop by itself) but you are propping it up with shipments from other cities? And when the wagons dump too much food it causes a citizen growth but then the city starves for the next turn till more food is dumped by the wagons?

Yes, that's exactly what I'm saying. I think it is a bit silly that a city would willingly sacrifice all of its food to generate new colonists if it has a negative food-income. A small buffer (so, e.g. setting the growth-threshold to 250, leaving 50 food when the city generates a Free Colonist, which costs 200 food) would easily fix this without affecting further gameplay or imbalancing anything.
 
Very good Dale! In the next version you should add the coastal trader unit from Triangle Trade, is easy to add and a very useful unit :)
 
A small tweak I would consider a great addition to the game:
When a city reaches 200 food, it generates a new Free Colonist and has its food-supply reduced by 200. I love to build centralized economies, and sometimes this even makes sense strategy-wise. Smaller cities generate a surplus of food and this surplus is shipped to a very large central city that does most of the refinement in my empire, with the added bonus that all newly 'born' free-colonist are generated exactly where they are needed most; in the center of my empire. The problem is that with the enormous amounts of food that are consumed in the central city, almost every growth is accompanied with starvation the next turn, forcing workers out of their jobs. I now have to keep some extra food stashed in a wagon train to prevent this from happening, but a much more sensible solution would be to increase the food-threshold of growth to for instance 250. Then, when the city generates a new Free Colonist, costing 200 food, 50 food is left to survive a turn or two before new food arrives from the surrounding cities.
Would it be possible to include this in your mod, that already incorporates so many things that are missing from this game?

I am just being a novise python programmer so i might be wrong, but i think this can be made by changing the cvcity.cpp - dogrowth to include an additional requirement that getFood() >= (growthThreshold() - foodDifference() times something) if foodDifference() is negative.
Sorry that i cannot give a suggestion on the code but at the moment i think good programmers in a whim could do it better than me.
Would this work?

Spoiler :


void CvCity::doGrowth()
{
int iDiff;

CyCity* pyCity = new CyCity(this);
CyArgsList argsList;
argsList.add(gDLL->getPythonIFace()->makePythonObject(pyCity)); // pass in city class
long lResult=0;
gDLL->getPythonIFace()->callFunction(PYGameModule, "doGrowth", argsList.makeFunctionArgs(), &lResult);
delete pyCity; // python fxn must not hold on to this pointer
if (lResult == 1)
{
return;
}

iDiff = foodDifference();

changeFood(iDiff);
changeFoodKept(iDiff);

setFoodKept(range(getFoodKept(), 0, ((growthThreshold() * getMaxFoodKeptPercent()) / 100)));

if (getFood() >= growthThreshold())
{
if (AI_isEmphasizeAvoidGrowth())
{
setFood(growthThreshold());
}
else
{
if (getFood() >= (growthThreshold()-iDiff*3)
{
UnitTypes eUnit = (UnitTypes)GC.getCivilizationInfo(getCivilizationType()).getCivilizationUnits(GC.getDefineINT("DEFAULT_POPULATION_UNIT"));
if (NO_UNIT != eUnit)
{
CvUnit* pUnit = GET_PLAYER(getOwnerINLINE()).initUnit(eUnit, (ProfessionTypes) GC.getCivilizationInfo(GET_PLAYER(getOwnerINLINE()).getCivilizationType()).getDefaultProfession(), getX_INLINE(), getY_INLINE());

changeFood(-(std::max(0, (growthThreshold() - getFoodKept()))));
}

gDLL->getInterfaceIFace()->addMessage(getOwnerINLINE(), false, GC.getEVENT_MESSAGE_TIME(), gDLL->getText("TXT_KEY_CITY_GROWTH", getNameKey()), "AS2D_POSITIVE_DINK", MESSAGE_TYPE_INFO, GC.getYieldInfo(YIELD_FOOD).getButton(), (ColorTypes)GC.getInfoTypeForString("COLOR_GREEN"), getX_INLINE(), getY_INLINE(), true, true);


// ONEVENT - City growth
gDLL->getEventReporterIFace()->cityGrowth(this, getOwnerINLINE());
}
}
}
else if (getFood() < 0)
{
changeFood(-(getFood()));
if (getPopulation() > 1)
{
if (!AI_removeWorstPopulationUnit(false))
{
AI_removeWorstPopulationUnit(true);
}

gDLL->getInterfaceIFace()->addMessage(getOwnerINLINE(), false, GC.getEVENT_MESSAGE_TIME(), gDLL->getText("TXT_KEY_CITY_STARVING", getNameKey()), "AS2D_DEAL_CANCELLED", MESSAGE_TYPE_INFO, GC.getYieldInfo(YIELD_FOOD).getButton(), (ColorTypes)GC.getInfoTypeForString("COLOR_RED"), getX_INLINE(), getY_INLINE(), true, true);
}
else if (!isNative())
{
changeOccupationTimer(2);
}
}
}

 
I am just being a novise python programmer so i might be wrong, but i think this can be made by changing the cvcity.cpp - dogrowth to include an additional requirement that getFood() >= (growthThreshold() - foodDifference() times something) if foodDifference() is negative.
Sorry that i cannot give a suggestion on the code but at the moment i think good programmers in a whim could do it better than me.
Would this work?

Thanks for pointing out the probable location of code that needs change for this alteration. It would be even better if a player could decide per city how much food is always kept in storage after growth. Like it is possible to set the minimum amount for each good kept with automatic trading. Does anyone, looking at the code pointed out by ADHansa in the following spoiler-box, know how this might be achieved? If not for this wonderful mod, then at least I'll be incorporating it myself.

Spoiler :


void CvCity::doGrowth()
{
int iDiff;

CyCity* pyCity = new CyCity(this);
CyArgsList argsList;
argsList.add(gDLL->getPythonIFace()->makePythonObject(pyCity)); // pass in city class
long lResult=0;
gDLL->getPythonIFace()->callFunction(PYGameModule, "doGrowth", argsList.makeFunctionArgs(), &lResult);
delete pyCity; // python fxn must not hold on to this pointer
if (lResult == 1)
{
return;
}

iDiff = foodDifference();

changeFood(iDiff);
changeFoodKept(iDiff);

setFoodKept(range(getFoodKept(), 0, ((growthThreshold() * getMaxFoodKeptPercent()) / 100)));

if (getFood() >= growthThreshold())
{
if (AI_isEmphasizeAvoidGrowth())
{
setFood(growthThreshold());
}
else
{
if (getFood() >= (growthThreshold()-iDiff*3)
{
UnitTypes eUnit = (UnitTypes)GC.getCivilizationInfo(getCivilizationType()).getCivilizationUnits(GC.getDefineINT("DEFAULT_POPULATION_UNIT"));
if (NO_UNIT != eUnit)
{
CvUnit* pUnit = GET_PLAYER(getOwnerINLINE()).initUnit(eUnit, (ProfessionTypes) GC.getCivilizationInfo(GET_PLAYER(getOwnerINLINE()).getCivilizationType()).getDefaultProfession(), getX_INLINE(), getY_INLINE());

changeFood(-(std::max(0, (growthThreshold() - getFoodKept()))));
}

gDLL->getInterfaceIFace()->addMessage(getOwnerINLINE(), false, GC.getEVENT_MESSAGE_TIME(), gDLL->getText("TXT_KEY_CITY_GROWTH", getNameKey()), "AS2D_POSITIVE_DINK", MESSAGE_TYPE_INFO, GC.getYieldInfo(YIELD_FOOD).getButton(), (ColorTypes)GC.getInfoTypeForString("COLOR_GREEN"), getX_INLINE(), getY_INLINE(), true, true);


// ONEVENT - City growth
gDLL->getEventReporterIFace()->cityGrowth(this, getOwnerINLINE());
}
}
}
else if (getFood() < 0)
{
changeFood(-(getFood()));
if (getPopulation() > 1)
{
if (!AI_removeWorstPopulationUnit(false))
{
AI_removeWorstPopulationUnit(true);
}

gDLL->getInterfaceIFace()->addMessage(getOwnerINLINE(), false, GC.getEVENT_MESSAGE_TIME(), gDLL->getText("TXT_KEY_CITY_STARVING", getNameKey()), "AS2D_DEAL_CANCELLED", MESSAGE_TYPE_INFO, GC.getYieldInfo(YIELD_FOOD).getButton(), (ColorTypes)GC.getInfoTypeForString("COLOR_RED"), getX_INLINE(), getY_INLINE(), true, true);
}
else if (!isNative())
{
changeOccupationTimer(2);
}
}
}

 
Loving the mod, but one small bug: whenever I get an achievement, instead of the appropriate picture, I merely get an infuriating pink square where it should be. Unsure if this is my installation or a bug, but advice would be much appreciated.
 
Tboy (and anyone else experiencing the purple achievement screens):

I had an incorrect file path in Civ4AchieveInfo.xml file in for about two hours yesterday (I have already updated the download file).

If you're experiencing the purple pictures, replace Civ4AchieveInfos.xml in \Mods\AgeOfDiscoveryII\Assets\XML\Events\ with the one in the attached zip file. :)
 
Tried it last night. Good to see the new update. Things I noticed that were out of kilter:

* Starting screen (just before you begin) only describes your goal in terms of revolution.
* The Sail - East and Sail - West seem counterintuitive. It might be better if they read (Sail to the Atlantic and Sail to the Pacific) You might also want to change the icon, so that the arrow on the Sail to Atlantic points to the left (as is now), but the Sail to the Pacific points right.
* Love the Achievements but I'm sure we can find a better picture of a church or symbolic of tools. How about http://www.angel-art-house.com/oil_...t_Theodore/The_Blacksmiths_Signboard_1814.htm or http://www.paintingall.com/product.php?productid=15793 for a blacksmith, for instance.
 
Tboy (and anyone else experiencing the purple achievement screens):

I had an incorrect file path in Civ4AchieveInfo.xml file in for about two hours yesterday (I have already updated the download file).

If you're experiencing the purple pictures, replace Civ4AchieveInfos.xml in \Mods\AgeOfDiscoveryII\Assets\XML\Events\ with the one in the attached zip file. :)

Much appreciated, thanks. :)
 
Tried it last night. Good to see the new update. Things I noticed that were out of kilter:

* Starting screen (just before you begin) only describes your goal in terms of revolution.
* The Sail - East and Sail - West seem counterintuitive. It might be better if they read (Sail to the Atlantic and Sail to the Pacific) You might also want to change the icon, so that the arrow on the Sail to Atlantic points to the left (as is now), but the Sail to the Pacific points right.
* Love the Achievements but I'm sure we can find a better picture of a church or symbolic of tools. How about http://www.angel-art-house.com/oil_...t_Theodore/The_Blacksmiths_Signboard_1814.htm or http://www.paintingall.com/product.php?productid=15793 for a blacksmith, for instance.

Thanks for playing. :)

- Noted about the start screen.
- Naming the east - west buttons may seem good for normal Col, but the Columbus Dreams map doesn't have an Atlantic, and the Pacific is on the other side. ;) But I see the point on the arrows.
- Nice pics for the achievements, but they're not the correct dimensions. They need to be 360 * 240 (or bigger) landscape, not portrait. I'll take another quick look though for something.
 
The current list for v1.04 (not due out yet):

- Added intro movie
- Added cutscenes with New World quotes
- Added achievement advisor icon
- Added new victories to Royal Charter (DoM screen)
- Changed Pirate Ship strength 4 -> 3
- Changed requirement for Economic & Industrial victories to double
- Fixed victory condition capitalisations
- Fixed broken 50 cross achievement text
- Fixed achievements not recognising earlier style buildings (eg: not getting 5 stockades when 1 is a fort)
- Removed button pointer for Achievement interface message when not needed

Will keep this list updated. :)
 
Argh... alas, even after installing the fix, and after that re-downloading the entire mod, the pink screen bug persists. I'm afraid I've no ideas why this is, sorry.
 
Did you happen to change the name of the mod's folder? It must be "AgeOfDiscoveryII" or they won't work. Unfortunately, unless I feed the pics through the game's ArtFileMgr (a HUGE job) I only have relative to root access which means I need to define the file location as "Mods\AgeOfDiscoveryII\Assets\Art\Achivements\" for it to work.
 
Nope, no name change, and the files seem to be in the right directory.

This is a purely random thought, which probably has no effect on it, but: my game installed to my 'My Games' folder only, rather than Program Files. Probably unrelated, but just an idea.
 
Make sure you put the mod in the Program Files location of Col (where the actual EXE file is) not MyGames. :)
 
Top Bottom