Example #1
0
def getDifferenceByPlayer(playerOrID, targetPlayerOrID=None):
    if targetPlayerOrID is None:
        return getDifferenceByTeam(PlayerUtil.getPlayerTeam(playerOrID))
    else:
        return getDifferenceByTeam(
            PlayerUtil.getPlayerTeam(playerOrID),
            PlayerUtil.getPlayerTeamID(targetPlayerOrID))
Example #2
0
def getSpending(playerOrID, ActiveplayerOrID=None):
    if ActiveplayerOrID != None:
        pActiveTeam = PlayerUtil.getPlayerTeam(ActiveplayerOrID)

    iTotal = 0
    for targetTeam in PlayerUtil.teams(True, None, False):
        if ActiveplayerOrID == None or pActiveTeam.isHasMet(targetTeam.getID()):
            iTotal += getDifferenceByTeam(PlayerUtil.getPlayerTeam(playerOrID), targetTeam.getID())
    return iTotal
Example #3
0
def getSpending(playerOrID, ActiveplayerOrID=None):
    if ActiveplayerOrID != None:
        pActiveTeam = PlayerUtil.getPlayerTeam(ActiveplayerOrID)

    iTotal = 0
    for targetTeam in PlayerUtil.teams(True, None, False):
        if (ActiveplayerOrID == None
                or pActiveTeam.isHasMet(targetTeam.getID())):
            iTotal += getDifferenceByTeam(PlayerUtil.getPlayerTeam(playerOrID),
                                          targetTeam.getID())
    return iTotal
Example #4
0
def calculateTradeRoutes(playerOrID, withPlayerOrID=None):
    """
	Returns the domestic and foreign trade route yields and counts for <playerOrID>:
	domestic yield, domestic count, foreign yield, and foreign count.
	
	If <withPlayerOrID> is given, only counts trade routes to their cities.
	If Fractional Trade Routes is active, the value returned is fractional (times 100).
	"""
    domesticTrade = domesticCount = foreignTrade = foreignCount = 0
    eTeam = PlayerUtil.getPlayerTeam(playerOrID)
    eWithPlayer = PlayerUtil.getPlayerID(withPlayerOrID)
    for city in PlayerUtil.playerCities(playerOrID):
        for i in range(city.getTradeRoutes()):
            tradeCity = city.getTradeCity(i)
            if tradeCity and tradeCity.getOwner() >= 0 and (
                    eWithPlayer == -1 or eWithPlayer == tradeCity.getOwner()):
                trade = city.calculateTradeYield(
                    YieldTypes.YIELD_COMMERCE,
                    TRADE_PROFIT_FUNC(city, tradeCity))
                if tradeCity.getTeam() == eTeam:
                    domesticTrade += trade
                    domesticCount += 1
                else:
                    foreignTrade += trade
                    foreignCount += 1
    return domesticTrade, domesticCount, foreignTrade, foreignCount
Example #5
0
def canContact(playerOrID, toPlayerOrID):
	"""
	Returns True if <player> can attempt to contact <toPlayer> given game settings, 
	initial contact, and war-time situation without regard to willingness to talk.
	
	- They must not be the same player
	- <toPlayer> must be alive, not minor, and not a barbarian
	- Their teams must have met
	- If they are at war, they must be able to sign a peace deal (no Always War or Permanent War/Peace options)
	"""
	playerID, player = PlayerUtil.getPlayerAndID(playerOrID)
	toPlayerID, toPlayer = PlayerUtil.getPlayerAndID(toPlayerOrID)
	if playerID == toPlayerID:
		return False
	if not toPlayer.isAlive() or toPlayer.isBarbarian() or toPlayer.isMinorCiv():
		return False
	if not PlayerUtil.getPlayerTeam(player).isHasMet(toPlayer.getTeam()):
		return False
	if PlayerUtil.getPlayerTeam(player).isAtWar(toPlayer.getTeam()) and (GameUtil.isAlwaysWar() or GameUtil.isPermanentWarPeace()):
		return False
	return True
def calculateTradeRoutes(playerOrID, withPlayerOrID=None):
	"""
	Returns the domestic and foreign trade route yields and counts for <playerOrID>:
	domestic yield, domestic count, foreign yield, and foreign count.
	
	If <withPlayerOrID> is given, only counts trade routes to their cities.
	If Fractional Trade Routes is active, the value returned is fractional (times 100).
	"""
	domesticTrade = domesticCount = foreignTrade = foreignCount = 0
	eTeam = PlayerUtil.getPlayerTeam(playerOrID)
	eWithPlayer = PlayerUtil.getPlayerID(withPlayerOrID)
	for city in PlayerUtil.playerCities(playerOrID):
		for i in range(city.getTradeRoutes()):
			tradeCity = city.getTradeCity(i)
			if tradeCity and tradeCity.getOwner() >= 0 and (eWithPlayer == -1 or eWithPlayer == tradeCity.getOwner()):
				trade = city.calculateTradeYield(YieldTypes.YIELD_COMMERCE, TRADE_PROFIT_FUNC(city, tradeCity))
				if tradeCity.getTeam() == eTeam:
					domesticTrade += trade
					domesticCount += 1
				else:
					foreignTrade += trade
					foreignCount += 1
	return domesticTrade, domesticCount, foreignTrade, foreignCount
Example #7
0
def getTradeContacts(player, trade):
    return PlayerUtil.getPlayerTeam(trade.iData).getName()
Example #8
0
def getDifferenceByPlayer(playerOrID, targetPlayerOrID=None):
    if targetPlayerOrID is None:
        return getDifferenceByTeam(PlayerUtil.getPlayerTeam(playerOrID))
    else:
        return getDifferenceByTeam(PlayerUtil.getPlayerTeam(playerOrID), PlayerUtil.getPlayerTeamID(targetPlayerOrID))
Example #9
0
def getTradeContacts(player, trade):
	return PlayerUtil.getPlayerTeam(trade.iData).getName()