Requesting following features

Though I like the idea I don't think we should make founding cities on non-historical sites impossible... it removes part of the game. For non named tiles I think the code should look for the nearest city name. It is always possible that I try and make it that no matter where you found the cities there will always be a name (as difficult that may be) in another place nearby that can be used. Once we finish testing on the search for nearest tiles solution we can see whether or not it is feasable enough to use the method or whether to revert to historical solutions only... I even have city locations that can't exist :p for example you could only found Neapolis (Naples) on it's "Native spot" when both Rome and Tarentum are razed :p this is of course due to city distances :lol:

From now on I guess when we refer to tiles with names they are the name's "Native" tile, just sounds more fun :p

The problem with the historical only solution is that the AI might not understand and start freaking out (:lol:) and the player's strategy could be ruined!
 
We can totally implement whatever solution you wanna go with. If the goal is to actually cover the whole map in city names you might as well go with the cumbersome RFC solution of making a matrix of all map tiles. I think this is a big waste of time however.

Regarding the founding out-of-place suggestion - it could still be somewhat flexible and take into consideration whether or not any of the adjacent tiles has a name. I don't know what map scale you've opted for but I imagine you've pretty much covered all the main parts of the map with historical site names - with no gaps between them greater than 2 tiles. Then those areas would be legal it their entirety, while the areas you really don't want the AI to settle (like Central/East Europe) would be out of bounds.

Also, you wouldn't have to worry about the AI for this. It would only limit the options - like the AI can handle not being able to settle on water, desert, tundra and so on. But its still your call.
 
well so far England is pretty covered and spain is covered with 9 names and providing not all of thee 4 starting spanish citiees are razed it should be fine italy is pretty much full! france is good in some area but in others a little sparse... sweden is pretty sparse but I will work on that. work is needed is the east and south mainly. I will be done eventually and I will sne dyou pictures of the tiles. Also what is the key to reveal the entire map again :p
 
well so far England is pretty covered and spain is covered with 9 names and providing not all of thee 4 starting spanish citiees are razed it should be fine italy is pretty much full! france is good in some area but in others a little sparse... sweden is pretty sparse but I will work on that. work is needed is the east and south mainly. I will be done eventually and I will sne dyou pictures of the tiles.
As I said, focus on how you want the feature to work - worry about covering the whole map later. Like in future updates for your mod. We can't wait until you're "done" if we're gonna implement this.

Also, I don't need to see any tiles or images. You need to pair up each city name entry with a pair of tile coordinates.

Also what is the key to reveal the entire map again :p
Alt-Z? :dunno:
 
right I found the code for not showing civ has died I guess when you work out the solution you should just send this back to me edited!

Code:
def manageRebels(ePlayer, bAlive):
        if Game.getGameTurn() == 0: return
        pCivPlayer = instance(ePlayer)
        if isRebelCiv(pCivPlayer, True):
                if bAlive:
                        resetRebelCiv(pCivPlayer)
        elif not pCivPlayer.get(CyPlayer).isMinorCiv():
                if not bAlive:
                        if getRebelCiv(pCivPlayer).isAlive():
                                setGlobalData("eMajorFlipPlayer", pCivPlayer.get(playerID))
                        else:
                                addMessage(deathMessage, (pCivPlayer.getName(),), eRed)

also shouldn't this function be this (bold is the change... before there was nothing in there :p)

Code:
def gameTurn([B]iGameTurn[/B]):
        if iGameTurn > -1:
                Game.setGameTurn(iGameTurn)
 
right I found the code for not showing civ has died I guess when you work out the solution you should just send this back to me edited!
This suggests to me that you were able to disable the pre-existing deat messages, somehow. Because what the script you posted does (among other things) is it adds new death messages, but only when they should appear.

In short: The script isn't disabling any messages - you need to figure out how to disable those peace messages before we can add new ones with a Python script.
also shouldn't this function be this (bold is the change... before there was nothing in there :p)
I see what you mean, but if the function is working then there must be a global variable (constant) defined somewhere with the name iGameTurn. Look at the top of the module - or perhaps some global settings type module.
 
I guess. :dunno: Unless you managed to get rid of the messages in the XML. Perhaps by deleting the text string in the text XML?
 
Ctrl + z is the key :p

check pages 45/46 and possibly more to see what we did however I don't completly understand what happened :p (death messages)

It wasnt xml because the the bullet point... And if it was killing on first turn then you would get the messages later in the game when they die... you don't, there is a custom message in my xml files (I think). So it must be asaf...

also do you think that the ere should always spawn and if your code doesn't fire (no romans) then I should make some code that makes sure that they atleast get byzantium as long as it is not the only city of the owner (excluding rebels)
 
Aha, didn't you use something like dummy Workboats in the far North-East to keep the rebel Civs "alive" at all times? Or something... :p
 
The diplomacy is reset any time a rebel player is revived. So it firstly cancels all deals, then signs peace deals with everyone except its major civ counterpart - with whom it declares war (unless already at war).
Ok, it seems that the constant peace-dealing is my doing. :blush:

Try commenting out these lines (115-116) in CustomFeatures:
Code:
def resetRebelCiv(pCivPlayer):
        pCivPlayer.get(CyPlayer).killAllDeals()
        pTeam = pCivPlayer.get(CyTeam)
        for eRivalTeam in CivPlayer.getPlayers(True, teamID):
                if eRivalTeam == pCivPlayer.get(teamID): continue
                elif eRivalTeam == getMajorCiv(pCivPlayer).get(teamID):
                        if not pTeam.isAtWar(eRivalTeam):
                                pTeam.declareWar(eRivalTeam, False, -1)
[COLOR="Red"]##                elif pTeam.isAtWar(eRivalTeam):
##                        pTeam.makePeace(eRivalTeam)[/COLOR]
Now, there will be consequences, but surely this will make all those messages disappear, right?
 
I will look at the senario on turn one to see if they exist... commenting out those lines means war with everyone! that's the reason we put them in there :p, when asaf makes his way here we can find out if he can disable them...
 
Yeah, but you still need those peace messages for everyone else, right? Just not for the rebel Civs.
 
so then we use a simmilar system to the death messages... I am sure that we didn't use the kill method because then you would see them die later on and I don't think the warriors just wonder around there.... I don't even know if their island is there :p

So basically something like
.if *something about peace :p*:
. if not civ == eRebel (or something):
. message(Peace......
 
Yeah, there is a onChangeWar call-up to the Event Manager, so that is what we'll use. Simple enough.
 
wait a minute, onChangeWar... Is that for delcarations of peace or also for delcarations of war? in that case we have a problem :p
 
It works like this: Any time any two teams are changing their diplomatic relation - war/peace - then there is a call-up made from the DLL to Python. This is a "game event" and handled by the event manager module. So, in short, what happens is that any code found under the onChangeWar() method is executed.

What we wanna do is add a peace declaration message whenever the call-up concerns non-rebel Civs. We know that it is a new peace deal because the bIsWar value is False. If it is True, then we do nothing.

So there is no problem.
 
Back
Top Bottom