Akbarthegreat
Angel of Junil
there are 2 versions of province control in the code, 1 in which vassals count and 1 in which they don't. you can tell which condition applies by looking at the code. if the "checkRegionControl" call includes the word "True", vassalization counts.
So the Ottomans can use vassals:
Spoiler victory.py :
Code:
[COLOR="YellowGreen"]# Ottoman UHV3: Control or vassalize provinces in 1660[/COLOR]
if iGameTurn == getTurnForYear(1660):
if sd.getGoal(iOttomans, 2) == -1:
regionList = [con.rThrace, con.rAsia, con.rBithynia, con.rLycia, con.rPontus, con.rGalatia, con.rPaphlagonia, con.rCilicia, con.rCappadocia, con.rLesserArmenia, con.rTrebizond, con.rGreaterArmenia, con.rGeorgia, con.rKars, con.rVaspurakan, con.rShirvan, con.rSyria, con.rNorthernSyria, con.rPalestine, con.rLebanon, con.rJordan, con.rHejaz, con.rUpperEgypt, con.rLowerEgypt, con.rAsuristan, con.rMesopotamia, con.rJazira, con.rEdessa]
if self.checkRegions(iOttomans, regionList, [B]True[/B]):
sd.setGoal(iOttomans, 2, 1)
else:
sd.setGoal(iOttomans, 2, 0)
But the Ak Koyunlu cannot:
Spoiler victory.py :
Code:
[COLOR="YellowGreen"]# Ak Koyunlu UHV1: Control provinces in 1440[/COLOR]
if iGameTurn == getTurnForYear(1440):
bControl = True
regionList = [con.rJazira, con.rAsuristan, con.rAzerbaijan]
for regionID in regionList:
if not utils.checkRegionControl(iAkKoyunlu, regionID):
bControl = False
if bControl:
sd.setGoal(iAkKoyunlu, 0, 1)
else:
sd.setGoal(iAkKoyunlu, 0, 0)
What about the Mughals?
Spoiler victory.py :
Code:
[COLOR="YellowGreen"]# Mughal UHV3: Control provinces in 1650[/COLOR]
if iGameTurn == getTurnForYear(1650):
regionList = [con.rGandhar, con.rDuggar, con.rPunjab, con.rGird, con.rUttarBharat, con.rRajputana, con.rMaharashtra, con.rMalwa, con.rGujarat, con.rSindh, con.rKarnataka]
if self.checkRegions(iMughals, regionList):
sd.setGoal(iMughals, 2, 1)
else:
sd.setGoal(iMughals, 2, 0)
Spoiler :
So this part of the code allows vassals:
While this part disallows it:
Code:
def checkRegions(self, iPlayer, regionList, bVassal=False):
"""Checks whether iPlayer and his vassals (if bVassal is True) control
all regions (provinces) in regionList."""
for regionID in regionList:
if not utils.checkRegionControl(iPlayer, regionID, bVassal):
return False
return True
Code:
def getNumProvinces(self, iPlayer):
"""Returns the number of regions (provinces) that iPlayer controls."""
iNumProvinces = 0
regionList = []
apCityList = PyPlayer(iPlayer).getCityList()
for pCity in apCityList:
regionID = gc.getMap().plot(pCity.getX(), pCity.getY()).getRegionID()
if regionID not in regionList and utils.checkRegionControl(iPlayer, regionID):
regionList.append(regionID)
iNumProvinces += 1
return iNumProvinces
Am I correct?
EDIT: But Antioch also returns True for checkregionlist but their UHV says only control?