AI NPCs: Bards, Traders, Pilgrims, etc

It gave me idea for this mod. Addition to AI pilgrims, how about one of the players units could sometimes randomly become 'a sinner', and couldn't do work before (s)he has done pilgrimage to appointed monastery. After successful pilgrimage the unit would be freed from sin and maybe would also get some sort of bonus(experience/upgrade to specialist/religious points ?) to compensate the lost time. You could also make voluntary pilgrimages to foreign monasteries to gain the bonuses. Or maybe the destination of the pilgrimage would always be Pope's cities?
Interesting idea and it wouldn't be that hard to implement. We could add a plot pointer to CvUnit and set it to NULL. If the unit has to be a pilgrim, this pointer will point at the plot the unit has to go to. When a unit enters a plot, if the new plot is == pilgrim plot pointer, then the pointer is set to NULL.

This pointer can then be used in can*() functions where it returns false if it isn't NULL. This can be canBuild, canJoinCity or whatever we want.

The question is if it will be fun if your soldier suddenly becomes a pilgrim and can't attack unless you get him to a plot on the other side of your enemy.

How about monasteries would automatically get prefix "Holy" or "St." to their names? And Castles should get prefix "Castle". For example: Holy York or St.Orleans or Castle Aachen
So that it would be just quicker to spot the type of cities and it might look cool too.
At some point we will have an XML file telling about the city types. It would be possible to add a TXT_KEY with a name prefix (which can be empty). On founding, there is code to get a city name. This code can then be modded into attaching the prefix for the type of city in question. This mean all it does is changing the proposed name and the player has full ability to rename as he wants. The AI will always use the defaults. It sounds rather simple to implement once the XML file itself is added.
 
I agree with night on the potential rage of a unit suddenly having to go for miles to get 'fixed'.

I do like the idea of Crusading/Pilgrimming happening and giving benefits to your units on completion.

Perhaps it could be an optional event, where it is a choice between Pilgrimmage or becoming a criminal, perhaps it could be limited to certain professions (like excluding external soldiers) or it could just be a choice to allow that person to pilgrimmage or not (So is it worth the work to get them 'Upgraded' or is it best to leave them working) it could perhaps be different depending on the unit, so professionals have the 'choose' to pilgrimmage version, and criminals, cottars, peasants, serfs get the 'forced to pilgrimmage' version.

I also like the idea of the name prefixing for different city types, that could be fun and add a nice bit of flavour to the cities.
 
Some ideas worth considering for the future:

I read sometime ago an article about pilgrims and how they didn't always go to pilgrimage voluntarily, instead they were forced to go as punishment of their crime(s).

It gave me idea for this mod. Addition to AI pilgrims, how about one of the players units could sometimes randomly become 'a sinner', and couldn't do work before (s)he has done pilgrimage to appointed monastery. After successful pilgrimage the unit would be freed from sin and maybe would also get some sort of bonus(experience/upgrade to specialist/religious points ?) to compensate the lost time. You could also make voluntary pilgrimages to foreign monasteries to gain the bonuses. Or maybe the destination of the pilgrimage would always be Pope's cities?

This could be a good redemption mission for the Criminal units as an alternative to Court Houses.

Which leads to another idea:
There should be Holy Land / Jerusalem represented in the game somehow. So that you could make pilgrimages and Crusades.

I made the suggestion of the Holy Land being a "EuropeType" that you can sail to and do Crusader missions that way, but no one liked it :D (Perhaps the idea of a battle map could be used here if we ever did that)

But, perhaps we could implement a system where the game will generate a Holy City at the start, but what would be the criteria for it? We do have Rome now that is added to every random map, we could also add the Historical Leader of Jerusalem at this time. So, who was the ruler of Jerusalem in 476?

EDIT: Looking at Europe Maps of 476 it looks like Byzantium had control of Jerusalem at this time. We could add them and create the Holy City that way, I planned to add them anyway.
EDIT: And apparently this guy was its Emperor... http://en.wikipedia.org/wiki/Zeno_(emperor)

And just small idea but could be the most useful:
How about monasteries would automatically get prefix "Holy" or "St." to their names? And Castles should get prefix "Castle". For example: Holy York or St.Orleans or Castle Aachen
So that it would be just quicker to spot the type of cities and it might look cool too.

I have planed a huge update to how cities are differentiated but this name change would be a good idea as well. We could add a new list of city names in Civ XML for Monastery Names and Castle Names, if this is empty or used up it will just use the default names with the suggested prefix.
 
I have planed a huge update to how cities are differentiated but this name change would be a good idea as well. We could add a new list of city names in Civ XML for Monastery Names and Castle Names, if this is empty or used up it will just use the default names with the suggested prefix.
We should do something like this
Code:
<citynames>
    <cityname>
        <type>CITY_TYPE_CASTLE>
        <names>
             <name>Castle A</name>
             <name>Castle B</name>
             <name>Castle C</name>
        </names>
    </cityname>
    <cityname>
        <type>CITY_TYPE_HAMLET>
That way the schema file will not need updating if we add more city types. The same goes for the underlying DLL code to read the XML file. The XML reading code in InfoArray can read this out of the box, but it stores as shorts, not strings. I wonder how much work it would be to make it store strings instead. We really should make some sort of container class for strings rather than recoding XML reading code every time we add new strings. It would not only be faster to code, but also less risk of bugs as we reuse code.
 
We could make it that Jerusalem is a city state all of it's own, making it easy to capture, then when religion is overhauled, controlling Jerusalem could give special benefits, like a big diplomacy boosts with same religion leaders and a big negative for other religion leaders.

That or some kind of boost to pilgrimage gold or cross production, etc.

That way the crusades could become a more likely occurance as:

1) You don't have to fight a war with Byzantium to control it (which under the current sytem would probably be really hard as Byzantium would control a lot of cities and units from the start and even if not they would likely be a formidable adversary throughout the game)

2) The Negative diplomacy (and hopefully the popes general desire to keep calling crusades against whoever owns it if heathen) will ensure a constant warring against whoever controls it. So Crusader and Jihadi armies will gravitate towards it.

3) It wouldn't end up accidentally buried in the middle of the byzantium empire on the map, as it would be given it's own starting location.
 
1) You don't have to fight a war with Byzantium to control it (which under the current sytem would probably be really hard as Byzantium would control a lot of cities and units from the start and even if not they would likely be a formidable adversary throughout the game)

Well, according to one timeline the Persians first took Jerusalem in 614, which the Byzantines took back in 629, then the Muslims take it in 638 and controlled it until 1099. So, apparently Byzantine begin to weaken in this part of the world around 638.

Player's aren't expected to capture Holy Cities right from the start, so such an event would take place later in the game when they themselves are more formidable.

Perhaps we could make this some kind of event, depending on how the map is randomly generated, Muslim invaders could come by land or sea and take Jerusalem and any cities in direct route. So then the Player's wouldn't have to fight Byzantine.

2) The Negative diplomacy (and hopefully the popes general desire to keep calling crusades against whoever owns it if heathen) will ensure a constant warring against whoever controls it. So Crusader and Jihadi armies will gravitate towards it.

Perhaps, if you are not allied with the Pope and you capture Jerusalem you could have options to allow Pilgrims or other religions to practice freely, charging them a tax like the Muslims did. Or you could choose to expel all other religions and disallow pilgrims which would really ignite Crusader/Jihad passion against you, but increase the influence of your own religion.

3) It wouldn't end up accidentally buried in the middle of the byzantium empire on the map, as it would be given it's own starting location.

Play testing would reveal issues with this, even if it has its own starting location it could still end up in hard to reach areas on random maps. For random maps we could just skip the whole Muslim capture from Byzantine idea and give to a Muslim state at the start. While not historically accurate it would simplify game mechanics.
 
Top Bottom