[modmodmod] SOI expanded

Thanks for this @Bobby Martnen.
I have played this a couple of times and i liked it! Twice as the Byzantines and twice as the Fatimids, and once as the Ottomans. In my experience, Fatimids get a bit too OP.
In my games as the Fatimids, I managed to build all the wonders in the quite and peace of Egypt. And when I played as Ottomans, they had come all the way to turkey and had Sultanate of Rum as their vassals which basically didn't give me any breathing space. Adding Ikhshidid dynasty (loyal to the Abbasids) and the Zirid dynasty(client state of Fatimids) could potentially make the game more interesting.

Btw, I see that you are thinking of adding all them short lived dynasties in the region. I love the idea! I don't know if my suggestion is in the scope of this modmod, but As you know, adding all those little dynasties will add to the complexity of the game, which will make it harder to fulfill the historical conditions. I was thinking it would be great if instead of 3 conditions, each civ had 4 or 5 conditions, three of which you would have to fulfill in order to win the game. this way the game will be more easily manageable and it will make it possible to have some exciting deviations from the actual history. it will also make it possible for the player to come up with his or her own strategy as opposed to just copying it from the strategy page and play the game a certain way.
Big respect for embryodead at first:D
Zirids out of map
Ikhshidids are represent as barbarian, its enough
Many strategies are outdated or insufficient:rolleyes:
 
Big respect for embryodead at first:D
embryodead?

Ikhshidids are represent as barbarian, its enough
Many strategies are outdated or insufficient:rolleyes:
That's the whole point I am trying to make. If these little dynasties are to be in the game. The game should be less deterministic and the events currently represented by barbarians should have more representation and potentially get somewhere.
 
That's the whole point I am trying to make. If these little dynasties are to be in the game. The game should be less deterministic and the events currently represented by barbarians should have more representation and potentially get somewhere.

I agree with adding Saffarids and Shirvanshahs plus new World Wonders like Qız Qalası(The Maiden Tower of Baku) and Arg-e-Bam, respawn of Makuria as Sultanate of Sennar, new resources(timber, for example), but:
1. Embryodead completed the development of the project
2. Bobby Martnen can not develop the project in full force
 
I agree with adding Saffarids and Shirvanshahs plus new World Wonders like Qız Qalası(The Maiden Tower of Baku) and Arg-e-Bam, respawn of Makuria as Sultanate of Sennar, new resources(timber, for example), but:
1. Embryodead completed the development of the project
2. Bobby Martnen can not develop the project in full force

Oh yeah sure. I understand. Well these are not exactly features. I haven't done any modding yet, but I am sure they can be easily implemented. It's new mechanisms that should be more time consuming to code.

Btw, If Bobby reads this, I am a developer and while my experience with Python has been on an experimental basis, I am interested to do some Civ4 modding. So yeah, if you are low on resources, I am happy to help! ;)
 
Oh yeah sure. I understand. Well these are not exactly features. I haven't done any modding yet, but I am sure they can be easily implemented. It's new mechanisms that should be more time consuming to code.

Btw, If Bobby reads this, I am a developer and while my experience with Python has been on an experimental basis, I am interested to do some Civ4 modding. So yeah, if you are low on resources, I am happy to help! ;)

Thank you shbSara! School is out for summer now so I have some more time to devote to this project.

Would you please look at the victory code a couple posts back?
 
Hello all,

I am ready to restart work on this, although my time is limited until April of 2016, so progress will be slow.
However, before I can work on this more, I need someone to figure out what is wrong with victory.py, when I try to play this mod, currently none of the buttons show, all that shows is the "gameboard" with no minimap, or unit buttons, or any buttons, if you know what I mean.

Once that is resolved, I can move on to my 2 goals to finish before April 2016
1. Make all of the civs that were NPCs in SoI original fully playable, with a unique unit, building, and set of victory goals.
2. Merge in BUG like Leoreth did in DoC. I will ask him for advice on how to do this.


Then in April, I can start to consider further map expansions and adding new civs.
 
Will it be possible to disable BUG if you merge it in? I don't personally like it.
 
Will it be possible to disable BUG if you merge it in? I don't personally like it.

I honestly don't know. I will have to ask Leoreth.

But first I need to fix the problem with Portugal's victory goal that is rendering this mod unplayable.

Then I need to add a full set of uniques for all the civs, including those that are currently NPCs.

Then, I start with BUG.

Can you help me fix the problem?
 
There is a problem with line 1950 in victory.py

I've attached the file. I would appreciate it if someone could take a look at it for me.

iRival isn't defined in line 1949. Shouldn't it be iCiv? Line 1960 has the same problem.

Do you have python exceptions enabled? It would have told you the problem already.
 
iRival isn't defined in line 1949. Shouldn't it be iCiv? Line 1960 has the same problem.

Do you have python exceptions enabled? It would have told you the problem already.

Thank you for your help. It still does not work, though. Also, the start year is shown as 0 for all the civs. I will upload the mod as it is right now, and maybe you could take a look at the entire mod to see what is wrong?

Python Exceptions did not work for me.
 
I proposed this for the RFCE (Rhye's and Fall of Civilizations: Europe) mod, but I think this might prove a solution to the Mecca/Jeddah issue mentioned earlier in the thread.

<><><><><><><>

I'd like to propose a new tile improvement for the game: namely, a port. Unlike most improvements, its effects on the tile would be tied to whichever city has it within its Big Fat Cross. Specifically, it would give:

+1 :commerce: if within the BFC of a city with population 1-5
+2 :commerce: if within the BFC of a city with population 6-10
+3 :commerce: if within the BFC of a city with population 11-15
+4 :commerce: if within the BFC of a city with population 16 and up

If it within the BFC of two cities, its effect would be determined by combining the population of both.

More importantly, however, a port would allow inland cities (again, those that have it within the BFC) to produce ships and buildings usually reserved for coastal cities. New ships would be auto-placed or moved to the port tile rather than the city itself.

As for where this new improvement can be placed, I'd suggest ports can be placed on any coastal tile so long as they are either on a flatland tile or (if placing a port on a hill tile is necessary) on a hill beside a river. (We may need to add a single-tile river near Jerusalem to make this work for a port at Jaffa).

The reason for this new improvement is that historically, inland cities were more defensible, but for reasons of commerce and naval competitiveness those fortified cities were often associated with nearby ports. The was famously the case with Athens, which built the Long Walls connecting it to the port of Piraeus. Likewise for Jerusalem and the port at Jaffa, as well as Mecca and the port of Jeddah. All of those cities were built inland, but required close ties to the sea, and that should be reflected in the game mechanics just as much as it is seen in history.
 
Ok, I spotted the problem. You added a extra tab in the underlined line (and every line after that in the "if iCiv == Portugal:"-loop). That caused a syntax error. Only add a tab to a newline after a: for, while, if, elif, else, def. (probably more, but those you will not likely encouter modding civ) So below is what it should be. I attached a fixed version of that file.

You also made the same mistake in the 2nd bolded part.

If you haven't done it already, you really should enable python exceptions. That makes it a lot easier to find the error. And it allows to continue the game. Leoreth made a post how to enable python exceptions.
http://forums.civfanatics.com/showthread.php?t=533867

Code:
				for iCiv in range(iNumTotalPlayers):
[B]					if iCiv == iPortugal:
						apCityList = PyPlayer(iCiv).getCityList()
						[U]for pCity in apCityList[/U]:[/B]
							if pCity.isCoastal(gc.getMIN_WATER_SIZE_FOR_OCEAN()):
								if gc.getMap().plot(pCity.getX(), pCity.getY()).getRegionID() in [con.rKarnataka, con.rGoa, con.rMaharashtra, con.rGujarat, con.rSindh, con.rBalochistan, con.rMakran, con.rHormuz, con.rFars, con.rKhuzestan, con.rMesopotamia, con.rArabia, con.rBahrain, con.rOman, con.rMahra, con.rHadhramaut, con.rYemen, con.rHejaz, con.rJordan, con.rUpperEgypt, con.rAksum, con.rMerebMellash, con.rSuqutra]:
									iPortugueseCities += 1
									iTotalCities += 1
								elif gc.getMap().plot(pCity.getX(), pCity.getY()).getRegionID() in [con.rSinai, con.rLowerEgypt]:
									if pCity.getY() < 33:
										iPortugueseCities += 1
										iTotalCities += 1
					else:
[B]						apCityList = PyPlayer(iCiv).getCityList()
						for pCity in apCityList:
							if pCity.isCoastal(gc.getMIN_WATER_SIZE_FOR_OCEAN()):[/B]
								if gc.getMap().plot(pCity.getX(), pCity.getY()).getRegionID() in [con.rKarnataka, con.rGoa, con.rMaharashtra, con.rGujarat, con.rSindh, con.rBalochistan, con.rMakran, con.rHormuz, con.rFars, con.rKhuzestan, con.rMesopotamia, con.rArabia, con.rBahrain, con.rOman, con.rMahra, con.rHadhramaut, con.rYemen, con.rHejaz, con.rJordan, con.rUpperEgypt, con.rAksum, con.rMerebMellash, con.rSuqutra]:
									iTotalCities += 1
								elif gc.getMap().plot(pCity.getX(), pCity.getY()).getRegionID() in [con.rSinai, con.rLowerEgypt]:
									if pCity.getY() < 33:
										iTotalCities += 1
 
Ok, I spotted the problem. You added a extra tab in the underlined line (and every line after that in the "if iCiv == Portugal:"-loop). That caused a syntax error. Only add a tab to a newline after a: for, while, if, elif, else, def. (probably more, but those you will not likely encouter modding civ) So below is what it should be. I attached a fixed version of that file.

You also made the same mistake in the 2nd bolded part.

If you haven't done it already, you really should enable python exceptions. That makes it a lot easier to find the error. And it allows to continue the game. Leoreth made a post how to enable python exceptions.
http://forums.civfanatics.com/showthread.php?t=533867

Code:
				for iCiv in range(iNumTotalPlayers):
[B]					if iCiv == iPortugal:
						apCityList = PyPlayer(iCiv).getCityList()
						[U]for pCity in apCityList[/U]:[/B]
							if pCity.isCoastal(gc.getMIN_WATER_SIZE_FOR_OCEAN()):
								if gc.getMap().plot(pCity.getX(), pCity.getY()).getRegionID() in [con.rKarnataka, con.rGoa, con.rMaharashtra, con.rGujarat, con.rSindh, con.rBalochistan, con.rMakran, con.rHormuz, con.rFars, con.rKhuzestan, con.rMesopotamia, con.rArabia, con.rBahrain, con.rOman, con.rMahra, con.rHadhramaut, con.rYemen, con.rHejaz, con.rJordan, con.rUpperEgypt, con.rAksum, con.rMerebMellash, con.rSuqutra]:
									iPortugueseCities += 1
									iTotalCities += 1
								elif gc.getMap().plot(pCity.getX(), pCity.getY()).getRegionID() in [con.rSinai, con.rLowerEgypt]:
									if pCity.getY() < 33:
										iPortugueseCities += 1
										iTotalCities += 1
					else:
[B]						apCityList = PyPlayer(iCiv).getCityList()
						for pCity in apCityList:
							if pCity.isCoastal(gc.getMIN_WATER_SIZE_FOR_OCEAN()):[/B]
								if gc.getMap().plot(pCity.getX(), pCity.getY()).getRegionID() in [con.rKarnataka, con.rGoa, con.rMaharashtra, con.rGujarat, con.rSindh, con.rBalochistan, con.rMakran, con.rHormuz, con.rFars, con.rKhuzestan, con.rMesopotamia, con.rArabia, con.rBahrain, con.rOman, con.rMahra, con.rHadhramaut, con.rYemen, con.rHejaz, con.rJordan, con.rUpperEgypt, con.rAksum, con.rMerebMellash, con.rSuqutra]:
									iTotalCities += 1
								elif gc.getMap().plot(pCity.getX(), pCity.getY()).getRegionID() in [con.rSinai, con.rLowerEgypt]:
									if pCity.getY() < 33:
										iTotalCities += 1

Thank you so much for doing this, I will try to upload an improved version of the mod soon.
 
COMING FRIDAY, JUNE 10th: SoI Expanded Version 0.1

Given that I didn't really have proper numbering before, or even a remotely developed version of the mod, I am just going to retroactively treat everything released up until now as an unofficial public beta.
The features of this mod, as compared to SoI, are
  • Map extended 15 tiles to the west to include Greece and Libya
  • UHV goals for the Buyids, Zengids, and Portuguese (playtesting help welcome!)
  • Dagestan added as a province to the map, with independent city Derbent
  • Samarra removed from map at start, replaced with Mosul
  • 3 new companies, Pisan Merchants, Silk Road, and Tamil Traders (all three still need artwork, if you have any, please let me know)
  • New Minor Religion: Sikhism, which spawns around 1600 AD in Punjab as a scripted event
  • Numerous improvements and additions to the city name manager
  • Several names have been changed to their traditional English spellings (Saladin, Tamerlane, Moguls)
  • A couple of map improvements, including moving Mecca 2 tiles east
  • Aleppo added as an independent city from the start
  • A few new songs

    Spoiler :
    PS:
    Thanks to BenZL43 and DC123456789 for help with the maps
    Thanks to sprt and merijn_v1 for programming the Portuguese UHVS
    Thanks to The Turk for all of his suggestions, most of them will eventually make it in to the mod

For 0.2, I am planning on adding more barbarian invasions including King Louis's Crusade in Egypt and Varangian Raids on Byzantium, along with a playable Ilkahnate. In 0.3, I hope to add the Serbians, Bulgarians, Saffarids, and Tahirids as unplayable civs.

For 0.4 I hope to add some other things that I talked about with The Turk
 
Back
Top Bottom