Celtic Mod v1.0 Release

antaine

King
Joined
Aug 1, 2005
Messages
737
Here is the first stable release of the Celtic Mod, RFC3000BCunlocked with the Celts added as a full playable civ.


http://www.filefactory.com/file/a22g86d/n/RFC_with_Celts.zip

There may be some things that still need polish, so here are the known issues with it:

-Translations of the UHV text into the other game languages have not been done

-Celtia does not appear in the civilopedia

-For some reason, the AI Celts refuse to use settlers on the British Isles, even though their settler maps indicate that they should (solutions here would be MOST welcome)

-It is unknown at this time whether the Celts will respawn after nationalism in Ireland (defined as its "normal" area) should they be defeated earlier. If anyone can confirm or deny this I would also be very appreciative.

But the crashing problem has been alleviated and everything seems to be working as intended so far as the coding goes (with the exception of the settlers and the possible rebirth).

I'm interested in any constructive comments people think are appropriate.
 
I'm not seeing a download link anywhere... Did you post in the download page or something? :confused:
 
I did but there was a problem with the upload. I'm re-uploading it and posting a fresh link in a couple minutes
 
Link is updated...should be good to go. I decided to reduce the Gallic Warrior spawn, but may need to find a happy medium as it seems it doesn't give the AI enough to get a foothold.
 
I see Carthage was included but I cannot have diplo with them (unlike Greece who OB'd with me since we're both at war with Rome). Is this intended?

Also, can you clarify whether the British Isles include Ireland? If so, since you enlarged Ireland considerably, one should be able to build 3 cities there without any flipping to England.

I'm also getting a "Rome declares war on Rome" bug.
 
I originally intended to make Carthage into a "working" civ. Unfortunately, unless they are flagged as "minor" (no negotiations), they cause the game to crash. Until I can figure a way around that, they'll have to remain that way.

Yes, you can fit more cities in Ireland, but with the way things *should* develop, they may be all the cities you have left by the end of the middle ages. All of Ireland is flagged as desireable colonizing area for the English, and falls within their Normal and Broader areas (just not the automatically flipping "Core"), so whether you are playing Celts or English, there will undoubtedly be an "us or them" situation sooner rather than later.

This is truer to history as well, since the English had to bring Ireland into the empire by invasion and war, the same with Wales and attempted the same with Scotland (although by a fluke of royal succession, the Scots were added to the UK without a definitive conquest).

Even if one chooses not to play the Celts, there are new challenges for the Romans, English and French (and, given the Celtic AI's desire to colonize Spain, the Spanish and Portugese as well).
 
Hmm... No luck with the download I'm afraid. My browser says there's no connection to the server. :confused:

Well, I suppose you get what you pay for, right? :rolleyes: I'll just call it a night and give it another try tomorrow. (Its already night where I'm at.)

Maybe you should try and add the zip archive to the Download page? Since this is a proper release and all... Just be sure to link to this thread for feedback, troubleshooting and bug reports.
 
If you capture Mediolanum, the Romans will eventually collapse due to lack of expansion and trade and you can just swoop in and capture it. Also, I didn't realize there will be barb cities to capture up in Scotland (because I need that iron) and the fact you left the indy cities in France to spawn again, because I would have just founded a city in Spain instead where the iron is closer, instead of founding Paris.
 
my understanding is that the Romans will eventually attempt to respawn, and if they do, you may lose a city and thus your 3rd UHV
 
I can't add the file to the downloads page as it has a 10mb limit and the file is 65mb... :(
 
my understanding is that the Romans will eventually attempt to respawn, and if they do, you may lose a city and thus your 3rd UHV

By then I would have given it to either France or Germany if my stability is so bad, but with such a powerhouse as Rome how can one be unstable? :lol:
So can you clarify, if I give it to somebody else after the 2nd UHV has passed, does that still count as a fail for the 3rd?
 
no, it only counts as a failure if you lose any city to either Romans or English.

But there would be no France or Germany by that time to give it to. Although I suppose the Greeks and the Egyptians might be game...
 
I apologize for this, but during the debugging process, the Celtic city names were deleted. Change this file from .zip to .py and replace the one in there now in order to correct this. Don't try to decompress it, it's not really a .zip, I just changed that in order to make the file size limit.

The original link has been updated to download a package with the updated file in situ.

new link:
http://www.filefactory.com/file/a22g86d/n/RFC_with_Celts.zip
 
It has become apparent that the AI Celts refuse to build or utilize any settlers they weren't given during their spawn. Does anyone know where the code or file is that governs this?
 
I apologize for this, but during the debugging process, the Celtic city names were deleted.
That would probably be my bad... :rolleyes: It was meant as a temporary thing during the debugging, as the formatting of the Celtic code came up all scrambled on my machine. Once I had concluded that no problems were created there and also noticed that the code looked alright in another application, I was sure I replaced the temp file with the original...

Well, you really can be sure without double checking now can you? :rolleyes:

I might add that there are a couple of other edits also in the Python files that I "corrected" for antaine. Nothing that will make the modmod run any less well, but still stuff I'll get back to him about. (Should I post that code in this thread, in a PM or in a new development thread?)
 
It seems that I was in a bit of hurry when I was debugging and fixing up the Python for this mod...

Just now I was gonna look up the code to reenable the Arabian UHV proper (with Carthage instead of Independents) and noticed I had left yet another debug code in the Victory.py file. My apologies! :blush:

I've attached the corrected file and here's the code with changed lines marked in red:

Spoiler :
Code:
[COLOR="Red"]                                if (iGameTurn >= con.tBirth[iSpain]+1 and iGameTurn <= i1300AD):[/COLOR]
                                        if (self.getGoal(iArabia, 1) == -1):
                                                bSpain = self.checkOwnedCiv(iArabia, iSpain)
                                                if (teamSpain.isVassal(iArabia)):
                                                        bSpain = True
                                                bEgypt = self.checkOwnedCiv(iArabia, iEgypt)
                                                if (teamEgypt.isVassal(iArabia)):
                                                        bEgypt = True

                                                # edit; Baldyr

                                                dummy1, plotList1 = utils.squareSearch( (50, 36), (61, 39), utils.ownedCityPlots, iArabia )
                                                dummy2, plotList2 = utils.squareSearch( (50, 36), (61, 39), utils.ownedCityPlots, iCarthage )
[COLOR="Red"]                                                if ((len(plotList1) >= 2 and len(plotList1) > len(plotList2)) or (len(plotList1) >= 1 and not gc.getPlayer(iCarthage).isAlive())):[/COLOR]
                                                        bCarthage = True
                                                else:
                                                        bCarthage = False
[COLOR="Red"]##                                                bCarthage = self.checkOwnedCiv(iArabia, iCarthage) #doesnt work with celt mod[/COLOR]

                                                # end edit

[COLOR="Red"]                                                if (teamCarthage.isVassal(iArabia)):
                                                        bCarthage = True[/COLOR]
                                                if (bSpain and bEgypt and bCarthage):
                                                        self.setGoal(iArabia, 1, 1)
                                elif (iGameTurn > i1300AD):
                                        if (self.getGoal(iArabia, 1) == -1):
                                                        self.setGoal(iArabia, 1, 0)
antaine: You can use the attached file (its actually compressed) or try and replace the code manually. Since this doesn't affect the playability of the Celts in any way it could very well wait until the next release. Your call.

What this fix does is that it should enable the Arabian UHV proper. Also, if the Carthagians are ever to be a proper (non-minor) Civ again, the code would not have to be changed to reflect this.

If anyone could run a game as the Arabs and see if the second UHV is actually working in game as intended, that would help. The same goes for the Romans, by the way. (I've tested both with altered game turn requirements and by using the World Builder, not by actually playing those Civs.)
 

Attachments

  • Victory.zip
    12.4 KB · Views: 69
I took a quick look at your Barbs.py file and thought I'd comment on a couple of things:

Code:
                #celts
                if (iGameTurn >= con.i350BC and iGameTurn <= con.i250BC):
                        self.spawnUnits( iCeltia, (47, 57), (49, 58), con.iCelticGallicWarrior, 4, iGameTurn, [COLOR="Red"]7[/COLOR], 0, utils.outerInvasion, 0)
                        self.spawnUnits( iCeltia, (54, 55), (54, 57), con.iCelticGallicWarrior, 4, iGameTurn, [COLOR="Red"]7[/COLOR], 0, utils.outerInvasion, 0)
The values marked in red indicate the turn interval between the spawns. By setting it to 1 you disable the interval and the spawn happens on every turn. So if the goal is to create only one spawn (assuming this) there really isn't any reason to define a year interval (350-250BC) either.

If you change the "utils.outerInvasion" bit to "utils.innerInvasion" I belive you can have spawn inside that Civ's cultural area (but no units or cities may be on the actual tile, or the spawn won't happen on that tile).

The last value on each line is the unit AI setting for the spawned units, as Rhye has defined them. The value correspond to these values and AI settings (marked in red):
Code:
                        if (iForceAttack == [COLOR="Red"]0[/COLOR]):
                                player.initUnit(iUnit, tCoords[0], tCoords[1], UnitAITypes.[COLOR="Red"]NO_UNITAI[/COLOR], DirectionTypes.DIRECTION_SOUTH)
                        elif (iForceAttack == [COLOR="Red"]1[/COLOR]):
                                player.initUnit(iUnit, tCoords[0], tCoords[1], UnitAITypes.[COLOR="Red"]UNITAI_ATTACK[/COLOR], DirectionTypes.DIRECTION_SOUTH)                                  
                        elif (iForceAttack == [COLOR="Red"]2[/COLOR]):
                                player.initUnit(iUnit, tCoords[0], tCoords[1], UnitAITypes.[COLOR="Red"]UNITAI_ATTACK_SEA[/COLOR], DirectionTypes.DIRECTION_SOUTH)
Most of the time you should be ok with simply using "NO_UNITAI" as that one is the default. I'm not even sure that the other settings do that much, but there is also a setting for Settlers. But that shouldn't change the way the AI uses Settlers, as Settlers AFAIK will always get that setting by default.

I my own modding I've experimented with adding lots of different unit AI's, but it has been buggy at best.

Regarding the city spawns on the British Isles, you've opted to make those Barbarian. You could however consider adding another layer of detail by mixing Barbarian cities with one Independent and one Independent2 also. This should work about the same if you add this line of code to the Celtic unit spawns (after line #129) mentioned above:
Code:
                        teamCeltia.declareWar(iIndependent, False, -1)
                        teamCeltia.declareWar(iIndependent2, False, -1)
And if you wanna make the unit spawns a AI feature only, you could change line #129 to:
Code:
                if (iGameTurn >= con.i350BC and iGameTurn <= con.i250BC[COLOR="Red"] and (not pCeltia.isHuman())[/COLOR]):
I haven't actually tested any of this code myself in this context, but it should work (maybe with a tweak or two). Just to give you something to experiment with for future releases. :king:
 
Also, can you clarify whether the British Isles include Ireland? If so, since you enlarged Ireland considerably, one should be able to build 3 cities there without any flipping to England.
It could be added that the English spawn zone is likely different from the default RFC one. I'm guessing it doesn't include Whales or Scotland, for example.

I'm also getting a "Rome declares war on Rome" bug.
I wonder what that is all about? :confused::eek::confused:

Anyone else getting this?
 
Another little note: The first Celtic UHV should actually read "Control Central Italy by AD 450", as the current Python code allows for the UHV to be completed even if Rome is raized - as long as the Celtic player controls a city, any city, in a predefined area in the Rome vicinity. (The Celts could just found that city themselves if Rome isn't there anymore.) As the UHV is completed the turn this is achieved there is no need to actually keep that city either.

Is this satisfactory?

Also, it would be interesting to hear about someone actually achieving a Historical Victory as the Celts! :king:
 
Top Bottom