Пример #1
0
def onWarDemanded(argsList):
	#BugUtil.debug("DiplomacyUtil::onWarDemanded %s" %(str(argsList)))
	eDemandPlayer, eTargetPlayer, eVictim = argsList
	BugUtil.debug("DiplomacyUtil - %s asks %s to declare war on %s",
			PlayerUtil.getPlayer(eDemandPlayer).getName(), 
			PlayerUtil.getPlayer(eTargetPlayer).getName(), 
			PlayerUtil.getPlayer(eVictim).getName())
Пример #2
0
def onWarRejected(argsList):
	#BugUtil.debug("DiplomacyUtil::onWarRejected %s" %(str(argsList)))
	eTargetPlayer, eDemandPlayer, eVictim = argsList
	BugUtil.debug("DiplomacyUtil - %s rejects demand from %s to declare war on %s",
			PlayerUtil.getPlayer(eTargetPlayer).getName(), 
			PlayerUtil.getPlayer(eDemandPlayer).getName(), 
			PlayerUtil.getPlayer(eVictim).getName())
Пример #3
0
def onEmbargoRejected(argsList):
	#BugUtil.debug("DiplomacyUtil::onEmbargoRejected %s" %(str(argsList)))
	eTargetPlayer, eDemandPlayer, eVictim = argsList
	BugUtil.debug("DiplomacyUtil - %s rejects demand from %s to stop trading with %s",
			PlayerUtil.getPlayer(eTargetPlayer).getName(), 
			PlayerUtil.getPlayer(eDemandPlayer).getName(), 
			PlayerUtil.getPlayer(eVictim).getName())
def onVassalOffered(argsList):
    #BugUtil.debug("DiplomacyUtil::onVassalOffered %s" %(str(argsList)))
    eOfferPlayer, eTargetPlayer = argsList
    BugUtil.debug(
        "DiplomacyUtil - %s offers vassalage to %s",
        PlayerUtil.getPlayer(eOfferPlayer).getCivilizationShortDescription(0),
        PlayerUtil.getPlayer(eTargetPlayer).getCivilizationShortDescription(0))
Пример #5
0
def onCivicRejected(argsList):
	#BugUtil.debug("DiplomacyUtil::onCivicRejected %s" %(str(argsList)))
	eTargetPlayer, eDemandPlayer, eCivic = argsList
	BugUtil.debug("DiplomacyUtil - %s rejects demand from %s to switch to %s",
			PlayerUtil.getPlayer(eTargetPlayer).getName(), 
			PlayerUtil.getPlayer(eDemandPlayer).getName(), 
			gc.getCivicInfo(eCivic).getDescription())
Пример #6
0
def onWarRejected(argsList):
	#BugUtil.debug("DiplomacyUtil::onWarRejected %s" %(str(argsList)))
	eTargetPlayer, eDemandPlayer, eVictim = argsList
	BugUtil.debug("DiplomacyUtil - %s rejects demand from %s to declare war on %s",
			PlayerUtil.getPlayer(eTargetPlayer).getCivilizationShortDescription(0), 
			PlayerUtil.getPlayer(eDemandPlayer).getCivilizationShortDescription(0), 
			PlayerUtil.getPlayer(eVictim).getCivilizationShortDescription(0))
Пример #7
0
def onDealRejected(argsList):
	#BugUtil.debug("DiplomacyUtil::onDealRejected %s" %(str(argsList)))
	eTargetPlayer, eOfferPlayer, pTrade = argsList
	BugUtil.debug("DiplomacyUtil - %s accepts trade offered by %s: %r",
			PlayerUtil.getPlayer(eTargetPlayer).getCivilizationShortDescription(0),
			PlayerUtil.getPlayer(eOfferPlayer).getCivilizationShortDescription(0), 
			pTrade)
Пример #8
0
def onCivicAccepted(argsList):
	#BugUtil.debug("DiplomacyUtil::onCivicAccepted %s" %(str(argsList)))
	eTargetPlayer, eDemandPlayer, eCivic = argsList
	BugUtil.debug("DiplomacyUtil - %s accepts demand from %s to switch to %s",
			PlayerUtil.getPlayer(eTargetPlayer).getCivilizationShortDescription(0), 
			PlayerUtil.getPlayer(eDemandPlayer).getCivilizationShortDescription(0), 
			gc.getCivicInfo(eCivic).getDescription())
Пример #9
0
def onHelpOffered(argsList):
	#BugUtil.debug("DiplomacyUtil::onHelpOffered %s" %(str(argsList)))
	eOfferPlayer, eTargetPlayer, pTrade = argsList
	BugUtil.debug("DiplomacyUtil - %s offers help to %s: %r",
			PlayerUtil.getPlayer(eOfferPlayer).getName(), 
			PlayerUtil.getPlayer(eTargetPlayer).getName(),
			pTrade)
Пример #10
0
def onReligionRejected(argsList):
	#BugUtil.debug("DiplomacyUtil::onReligionRejected %s" %(str(argsList)))
	eTargetPlayer, eDemandPlayer, eReligion = argsList
	BugUtil.debug("DiplomacyUtil - %s rejects demand from %s to convert to %s",
			PlayerUtil.getPlayer(eTargetPlayer).getName(), 
			PlayerUtil.getPlayer(eDemandPlayer).getName(), 
			gc.getReligionInfo(eReligion).getDescription())
Пример #11
0
def onDealCanceled(argsList):
    #BugUtil.debug("DiplomacyUtil::onDealCanceled %s" %(str(argsList)))
    eOfferPlayer, eTargetPlayer, pTrade = argsList
    if eOfferPlayer != -1 and eTargetPlayer != -1 and pTrade is not None:
        BugUtil.debug("DiplomacyUtil - %s cancels deal with %s: %r",
                      PlayerUtil.getPlayer(eOfferPlayer).getName(),
                      PlayerUtil.getPlayer(eTargetPlayer).getName(), pTrade)
Пример #12
0
def onEmbargoAccepted(argsList):
	#BugUtil.debug("DiplomacyUtil::onEmbargoAccepted %s" %(str(argsList)))
	eTargetPlayer, eDemandPlayer, eVictim = argsList
	BugUtil.debug("DiplomacyUtil - %s agrees to demand from %s to stop trading with %s",
			PlayerUtil.getPlayer(eTargetPlayer).getCivilizationShortDescription(0), 
			PlayerUtil.getPlayer(eDemandPlayer).getCivilizationShortDescription(0), 
			PlayerUtil.getPlayer(eVictim).getCivilizationShortDescription(0))
Пример #13
0
def onHelpOffered(argsList):
	#BugUtil.debug("DiplomacyUtil::onHelpOffered %s" %(str(argsList)))
	eOfferPlayer, eTargetPlayer, pTrade = argsList
	BugUtil.debug("DiplomacyUtil - %s offers help to %s: %r",
			PlayerUtil.getPlayer(eOfferPlayer).getCivilizationShortDescription(0), 
			PlayerUtil.getPlayer(eTargetPlayer).getCivilizationShortDescription(0),
			pTrade)
Пример #14
0
def onDealRejected(argsList):
	#BugUtil.debug("DiplomacyUtil::onDealRejected %s" %(str(argsList)))
	eTargetPlayer, eOfferPlayer, pTrade = argsList
	BugUtil.debug("DiplomacyUtil - %s accepts trade offered by %s: %r",
			PlayerUtil.getPlayer(eTargetPlayer).getName(),
			PlayerUtil.getPlayer(eOfferPlayer).getName(), 
			pTrade)
Пример #15
0
def onReligionAccepted(argsList):
	#BugUtil.debug("DiplomacyUtil::onReligionAccepted %s" %(str(argsList)))
	eTargetPlayer, eDemandPlayer, eReligion = argsList
	BugUtil.debug("DiplomacyUtil - %s accepts demand from %s to convert to %s",
			PlayerUtil.getPlayer(eTargetPlayer).getCivilizationShortDescription(0), 
			PlayerUtil.getPlayer(eDemandPlayer).getCivilizationShortDescription(0), 
			gc.getReligionInfo(eReligion).getDescription())
def onVassalOffered(argsList):
    # BugUtil.debug("DiplomacyUtil::onVassalOffered %s" %(str(argsList)))
    eOfferPlayer, eTargetPlayer = argsList
    BugUtil.debug(
        "DiplomacyUtil - %s offers vassalage to %s",
        PlayerUtil.getPlayer(eOfferPlayer).getCivilizationShortDescription(0),
        PlayerUtil.getPlayer(eTargetPlayer).getCivilizationShortDescription(0),
    )
Пример #17
0
def onDealCanceled(argsList):
	#BugUtil.debug("DiplomacyUtil::onDealCanceled %s" %(str(argsList)))
	eOfferPlayer, eTargetPlayer, pTrade = argsList
	if eOfferPlayer != -1 and eTargetPlayer != -1 and pTrade is not None:
		BugUtil.debug("DiplomacyUtil - %s cancels deal with %s: %r",
				PlayerUtil.getPlayer(eOfferPlayer).getName(), 
				PlayerUtil.getPlayer(eTargetPlayer).getName(),
				pTrade)
def onEmbargoAccepted(argsList):
    # BugUtil.debug("DiplomacyUtil::onEmbargoAccepted %s" %(str(argsList)))
    eTargetPlayer, eDemandPlayer, eVictim = argsList
    BugUtil.debug(
        "DiplomacyUtil - %s agrees to demand from %s to stop trading with %s",
        PlayerUtil.getPlayer(eTargetPlayer).getCivilizationShortDescription(0),
        PlayerUtil.getPlayer(eDemandPlayer).getCivilizationShortDescription(0),
        PlayerUtil.getPlayer(eVictim).getCivilizationShortDescription(0),
    )
Пример #19
0
def onTributeRejected(argsList):
    #BugUtil.debug("DiplomacyUtil::onTributeRejected %s" %(str(argsList)))
    eTargetPlayer, eDemandPlayer, pTrade = argsList
    szItems = ""
    for i in range(pTrade.getCount()):
        szItems = szItems + TradeUtil.format(eTargetPlayer, pTrade.getTrade(i))
    BugUtil.debug("DiplomacyUtil - %s refuses to give tribute (%s) to %s",
                  PlayerUtil.getPlayer(eTargetPlayer).getName(), szItems,
                  PlayerUtil.getPlayer(eDemandPlayer).getName())
def onDealRejected(argsList):
    # BugUtil.debug("DiplomacyUtil::onDealRejected %s" %(str(argsList)))
    eTargetPlayer, eOfferPlayer, pTrade = argsList
    BugUtil.debug(
        "DiplomacyUtil - %s accepts trade offered by %s: %r",
        PlayerUtil.getPlayer(eTargetPlayer).getCivilizationShortDescription(0),
        PlayerUtil.getPlayer(eOfferPlayer).getCivilizationShortDescription(0),
        pTrade,
    )
Пример #21
0
def onTributeDemanded(argsList):
    #BugUtil.debug("DiplomacyUtil::onTributeDemanded %s" %(str(argsList)))
    eDemandPlayer, eTargetPlayer, pTrade = argsList
    szItems = ""
    for i in range(pTrade.getCount()):
        szItems = szItems + TradeUtil.format(eTargetPlayer, pTrade.getTrade(i))
    BugUtil.debug("DiplomacyUtil - %s demands a tribute (%s) from %s",
                  PlayerUtil.getPlayer(eDemandPlayer).getName(), szItems,
                  PlayerUtil.getPlayer(eTargetPlayer).getName())
Пример #22
0
def onHelpAccepted(argsList):
    #BugUtil.debug("DiplomacyUtil::onHelpAccepted %s" %(str(argsList)))
    eTargetPlayer, eDemandPlayer, pTrade = argsList
    szItems = ""
    for i in range(pTrade.getCount()):
        szItems = szItems + TradeUtil.format(eTargetPlayer, pTrade.getTrade(i))
    BugUtil.debug("DiplomacyUtil - %s agrees to give help (%s) to %s",
                  PlayerUtil.getPlayer(eTargetPlayer).getName(), szItems,
                  PlayerUtil.getPlayer(eDemandPlayer).getName())
def onReligionAccepted(argsList):
    # BugUtil.debug("DiplomacyUtil::onReligionAccepted %s" %(str(argsList)))
    eTargetPlayer, eDemandPlayer, eReligion = argsList
    BugUtil.debug(
        "DiplomacyUtil - %s accepts demand from %s to convert to %s",
        PlayerUtil.getPlayer(eTargetPlayer).getCivilizationShortDescription(0),
        PlayerUtil.getPlayer(eDemandPlayer).getCivilizationShortDescription(0),
        gc.getReligionInfo(eReligion).getDescription(),
    )
def onWarRejected(argsList):
    # BugUtil.debug("DiplomacyUtil::onWarRejected %s" %(str(argsList)))
    eTargetPlayer, eDemandPlayer, eVictim = argsList
    BugUtil.debug(
        "DiplomacyUtil - %s rejects demand from %s to declare war on %s",
        PlayerUtil.getPlayer(eTargetPlayer).getCivilizationShortDescription(0),
        PlayerUtil.getPlayer(eDemandPlayer).getCivilizationShortDescription(0),
        PlayerUtil.getPlayer(eVictim).getCivilizationShortDescription(0),
    )
def onHelpOffered(argsList):
    # BugUtil.debug("DiplomacyUtil::onHelpOffered %s" %(str(argsList)))
    eOfferPlayer, eTargetPlayer, pTrade = argsList
    BugUtil.debug(
        "DiplomacyUtil - %s offers help to %s: %r",
        PlayerUtil.getPlayer(eOfferPlayer).getCivilizationShortDescription(0),
        PlayerUtil.getPlayer(eTargetPlayer).getCivilizationShortDescription(0),
        pTrade,
    )
def onCivicAccepted(argsList):
    # BugUtil.debug("DiplomacyUtil::onCivicAccepted %s" %(str(argsList)))
    eTargetPlayer, eDemandPlayer, eCivic = argsList
    BugUtil.debug(
        "DiplomacyUtil - %s accepts demand from %s to switch to %s",
        PlayerUtil.getPlayer(eTargetPlayer).getCivilizationShortDescription(0),
        PlayerUtil.getPlayer(eDemandPlayer).getCivilizationShortDescription(0),
        gc.getCivicInfo(eCivic).getDescription(),
    )
Пример #27
0
def onHelpAccepted(argsList):
	#BugUtil.debug("DiplomacyUtil::onHelpAccepted %s" %(str(argsList)))
	eTargetPlayer, eDemandPlayer, pTrade = argsList
	szItems = ""
	for i in range(pTrade.getCount()):
		szItems = szItems + TradeUtil.format(eTargetPlayer, pTrade.getTrade(i))
	BugUtil.debug("DiplomacyUtil - %s agrees to give help (%s) to %s",
			PlayerUtil.getPlayer(eTargetPlayer).getName(), 
			szItems,
			PlayerUtil.getPlayer(eDemandPlayer).getName())
Пример #28
0
def onHelpDemanded(argsList):
	#BugUtil.debug("DiplomacyUtil::onHelpDemanded %s" %(str(argsList)))
	eDemandPlayer, eTargetPlayer, pTrade = argsList
	szItems = ""
	for i in range(pTrade.getCount()):
		szItems = szItems + TradeUtil.format(eTargetPlayer, pTrade.getTrade(i))
	BugUtil.debug("DiplomacyUtil - %s requests help (%s) from %s",
			PlayerUtil.getPlayer(eDemandPlayer).getCivilizationShortDescription(0), 
			szItems,
			PlayerUtil.getPlayer(eTargetPlayer).getCivilizationShortDescription(0))
Пример #29
0
def onTributeAccepted(argsList):
	#BugUtil.debug("DiplomacyUtil::onTributeAccepted %s" %(str(argsList)))
	eTargetPlayer, eDemandPlayer, pTrade = argsList
	szItems = ""
	for i in range(pTrade.getCount()):
		szItems = szItems + TradeUtil.format(eTargetPlayer, pTrade.getTrade(i))
	BugUtil.debug("DiplomacyUtil - %s agrees to give tribute (%s) to %s",
			PlayerUtil.getPlayer(eTargetPlayer).getCivilizationShortDescription(0), 
			szItems,
			PlayerUtil.getPlayer(eDemandPlayer).getCivilizationShortDescription(0))
Пример #30
0
def onTributeDemanded(argsList):
	#BugUtil.debug("DiplomacyUtil::onTributeDemanded %s" %(str(argsList)))
	eDemandPlayer, eTargetPlayer, pTrade = argsList
	szItems = ""
	for i in range(pTrade.getCount()):
		szItems = szItems + TradeUtil.format(eTargetPlayer, pTrade.getTrade(i))
	BugUtil.debug("DiplomacyUtil - %s demands a tribute (%s) from %s",
			PlayerUtil.getPlayer(eDemandPlayer).getName(), 
			szItems,
			PlayerUtil.getPlayer(eTargetPlayer).getName())
Пример #31
0
def onTributeRejected(argsList):
	#BugUtil.debug("DiplomacyUtil::onTributeRejected %s" %(str(argsList)))
	eTargetPlayer, eDemandPlayer, pTrade = argsList
	szItems = ""
	for i in range(pTrade.getCount()):
		szItems = szItems + TradeUtil.format(eTargetPlayer, pTrade.getTrade(i))
	BugUtil.debug("DiplomacyUtil - %s refuses to give tribute (%s) to %s",
			PlayerUtil.getPlayer(eTargetPlayer).getName(), 
			szItems,
			PlayerUtil.getPlayer(eDemandPlayer).getName())
Пример #32
0
def test():
    allDeals = findDealsByPlayerAndType(0, (
        TradeableItems.TRADE_PEACE_TREATY,
        TradeableItems.TRADE_OPEN_BORDERS,
        TradeableItems.TRADE_DEFENSIVE_PACT,
        TradeableItems.TRADE_RESOURCES,
        TradeableItems.TRADE_GOLD_PER_TURN,
    ))
    for player, deals in allDeals.iteritems():
        print PlayerUtil.getPlayer(player).getName()
        for type, deal in deals.iteritems():
            print "%s: %r" % (TradeUtil.TRADE_FORMATS[type].name, deal)
def onHelpDemanded(argsList):
    # BugUtil.debug("DiplomacyUtil::onHelpDemanded %s" %(str(argsList)))
    eDemandPlayer, eTargetPlayer, pTrade = argsList
    szItems = ""
    for i in range(pTrade.getCount()):
        szItems = szItems + TradeUtil.format(eTargetPlayer, pTrade.getTrade(i))
    BugUtil.debug(
        "DiplomacyUtil - %s requests help (%s) from %s",
        PlayerUtil.getPlayer(eDemandPlayer).getCivilizationShortDescription(0),
        szItems,
        PlayerUtil.getPlayer(eTargetPlayer).getCivilizationShortDescription(0),
    )
def onTributeAccepted(argsList):
    # BugUtil.debug("DiplomacyUtil::onTributeAccepted %s" %(str(argsList)))
    eTargetPlayer, eDemandPlayer, pTrade = argsList
    szItems = ""
    for i in range(pTrade.getCount()):
        szItems = szItems + TradeUtil.format(eTargetPlayer, pTrade.getTrade(i))
    BugUtil.debug(
        "DiplomacyUtil - %s agrees to give tribute (%s) to %s",
        PlayerUtil.getPlayer(eTargetPlayer).getCivilizationShortDescription(0),
        szItems,
        PlayerUtil.getPlayer(eDemandPlayer).getCivilizationShortDescription(0),
    )
Пример #35
0
def test():
	allDeals = findDealsByPlayerAndType(0, 
			(
				TradeableItems.TRADE_PEACE_TREATY,
				TradeableItems.TRADE_OPEN_BORDERS,
				TradeableItems.TRADE_DEFENSIVE_PACT,
				TradeableItems.TRADE_RESOURCES,
				TradeableItems.TRADE_GOLD_PER_TURN,
			))
	for player, deals in allDeals.iteritems():
		print PlayerUtil.getPlayer(player).getName()
		for type, deal in deals.iteritems():
			print "%s: %r" % (TradeUtil.TRADE_FORMATS[type].name, deal)
Пример #36
0
def printStatus(ePlayer, eAskingPlayer=None):
	player = PlayerUtil.getPlayer(ePlayer)
	if eAskingPlayer is None:
		eAskingPlayer = PlayerUtil.getActivePlayerID()
	print "Trade Status -- %s" % player.getCivilizationShortDescription(0)
	for eItem, name in STATUS_TRADE_ITEMS:
		tradeData = TradeData()
		tradeData.ItemType = eItem
		can = player.canTradeItem(eAskingPlayer, tradeData, False)
		denial = player.getTradeDenial(eAskingPlayer, tradeData)
		will = denial == DenialTypes.NO_DENIAL
		if denial in DENIALS:
			denial = DENIALS[denial]
		else:
			denial = str(denial)
		if not can:
			if will:
				print "%s: can't but will" % (name)
			else:
				print "%s: can't and won't because %s" % (name, denial)
		else:
			if will:
				print "%s: will" % (name)
			else:
				print "%s: won't because %s" % (name, denial)
def getWorstEnemyTeams():
	"""
	Returns a dictionary of the team IDs that are each team's worst enemy.
	
	The key is team ID; the value is the worst enemy team ID.
	If a team has no worst enemy, -1 is stored as its value.
	Ignores dead, human, barbarian, and minor teams.
	
	Loops over players because CyTeam does not have getWorstEnemyName().
	"""
	namesToID = {}
	for team in PlayerUtil.teams(alive=True, barbarian=False, minor=False):
		namesToID[team.getName()] = team.getID()
	enemies = {}
	for team in PlayerUtil.teams(alive=True, human=False, barbarian=False, minor=False):
		eTeam = team.getID()
		eLeader = team.getLeaderID()
		if eLeader != -1:
			player = PlayerUtil.getPlayer(eLeader)
			worstEnemyName = player.getWorstEnemyName()
			if worstEnemyName:
				try:
					enemies[eTeam] = namesToID[worstEnemyName]
				except KeyError:
					BugUtil.debug("Cannot find team \"%s\"", worstEnemyName)
					enemies[eTeam] = -1
			else:
				enemies[eTeam] = -1
	return enemies
Пример #38
0
def getKnownTrainableUnits(playerOrID,
                           askingPlayerOrID,
                           knowableUnits,
                           bonuses,
                           military=None):
    player, team = PlayerUtil.getPlayerAndTeam(playerOrID)
    askingPlayer = PlayerUtil.getPlayer(askingPlayerOrID)
    eAskingTeam, askingTeam = PlayerUtil.getPlayerTeamAndID(askingPlayer)
    #trade = player.canTradeNetworkWith(askingPlayer.getID())
    cities = PlayerUtil.getPlayerCities(
        player, lambda city: city.isRevealed(eAskingTeam, False))
    # separate units into two groups: yes and maybe
    units = getTrainableUnits(playerOrID, knowableUnits, False, military)
    yesUnits = set()
    maybeUnits = set()
    BugUtil.debug("-----------------------")
    for eUnit in units:
        if not canAnyCityBuildUnit(eUnit, cities, eAskingTeam, False):
            BugUtil.debug("  no    %s", gc.getUnitInfo(eUnit).getDescription())
        elif hasBonusesForUnit(eUnit, bonuses):
            BugUtil.debug("  yes   %s", gc.getUnitInfo(eUnit).getDescription())
            yesUnits.add(eUnit)
        elif bonuses is None:
            BugUtil.debug("  maybe %s", gc.getUnitInfo(eUnit).getDescription())
            maybeUnits.add(eUnit)
    return yesUnits, maybeUnits
Пример #39
0
def getWorstEnemyTeams():
    """
    Returns a dictionary of the team IDs that are each team's worst enemy.

    The key is team ID; the value is the worst enemy team ID.
    If a team has no worst enemy, -1 is stored as its value.
    Ignores dead, human, barbarian, and minor teams.

    Loops over players because CyTeam does not have getWorstEnemyName().
    """
    namesToID = {}
    for team in PlayerUtil.teams(alive=True, barbarian=False, minor=False):
        namesToID[team.getName()] = team.getID()
    enemies = {}
    for team in PlayerUtil.teams(alive=True, human=False, barbarian=False, minor=False):
        eTeam = team.getID()
        eLeader = team.getLeaderID()
        if eLeader != -1:
            player = PlayerUtil.getPlayer(eLeader)
            worstEnemyName = player.getWorstEnemyName()
            if worstEnemyName:
                try:
                    enemies[eTeam] = namesToID[worstEnemyName]
                except KeyError:
                    BugUtil.debug("Cannot find team \"%s\"", worstEnemyName)
                    enemies[eTeam] = -1
            else:
                enemies[eTeam] = -1
    return enemies
Пример #40
0
def printStatus(ePlayer, eAskingPlayer=None):
    player = PlayerUtil.getPlayer(ePlayer)
    if eAskingPlayer is None:
        eAskingPlayer = PlayerUtil.getActivePlayerID()
    print "Trade Status -- %s" % player.getCivilizationShortDescription(0)
    for eItem, name in STATUS_TRADE_ITEMS:
        tradeData = TradeData()
        tradeData.ItemType = eItem
        can = player.canTradeItem(eAskingPlayer, tradeData, False)
        denial = player.getTradeDenial(eAskingPlayer, tradeData)
        will = denial == DenialTypes.NO_DENIAL
        if denial in DENIALS:
            denial = DENIALS[denial]
        else:
            denial = str(denial)
        if not can:
            if will:
                print "%s: can't but will" % (name)
            else:
                print "%s: can't and won't because %s" % (name, denial)
        else:
            if will:
                print "%s: will" % (name)
            else:
                print "%s: won't because %s" % (name, denial)
Пример #41
0
def tradeParters(playerOrID):
    """
    Iterates over all of <player>'s possible trade partners, yielding each CyPlayer in turn.
    """
    player = PlayerUtil.getPlayer(playerOrID)
    for partner in PlayerUtil.players(alive=True, barbarian=False, minor=False):
        if canTrade(player, partner):
            yield partner
Пример #42
0
def tradeParters(playerOrID):
	"""
	Iterates over all of <player>'s possible trade partners, yielding each CyPlayer in turn.
	"""
	player = PlayerUtil.getPlayer(playerOrID)
	for partner in PlayerUtil.players(alive=True, barbarian=False, minor=False):
		if canTrade(player, partner):
			yield partner
Пример #43
0
def getSurplusBonuses(playerOrID, minimum=1):
	"""
	Returns a list of bonus IDs of which <player> has at least <minimum> available to export.
	"""
	player = PlayerUtil.getPlayer(playerOrID)
	available = []
	for eBonus in range(gc.getNumBonusInfos()):
		if player.getNumTradeableBonuses(eBonus) >= minimum:
			available.append(eBonus)
	return available
Пример #44
0
def getSurplusBonuses(playerOrID, minimum=1):
    """
	Returns a list of bonus IDs of which <player> has at least <minimum> available to export.
	"""
    player = PlayerUtil.getPlayer(playerOrID)
    available = []
    for eBonus in range(gc.getNumBonusInfos()):
        if player.getNumTradeableBonuses(eBonus) >= minimum:
            available.append(eBonus)
    return available
Пример #45
0
def getCorporationBonuses(playerOrID):
    """
	Returns the set of bonus IDs that <player> can receive due to their corporations.
	Takes into account anything (e.g. civics) that alters <player>'s ability to run corporations.
	"""
    player = PlayerUtil.getPlayer(playerOrID)
    bonuses = set()
    for eCorp, inputs in CORP_BONUSES.iteritems():
        if player.getHasCorporationCount(eCorp) > 0:
            bonuses |= inputs
    return bonuses
Пример #46
0
def getTradePartnersByPlayer(playerOrID, testFunction, *args):
	"""
	Returns a list of CyPlayers that can trade with <player>.
	
	<testFunction> is passed two CyPlayers plus <args> for each viable pairing and should return a boolean value.
	"""
	player = PlayerUtil.getPlayer(playerOrID)
	partners = []
	for partner in tradeParters(player):
		if testFunction(player, partner, *args):
			partners.append(partner)
	return partners
Пример #47
0
def getCorporationBonuses(playerOrID):
	"""
	Returns the set of bonus IDs that <player> can receive due to their corporations.
	
	Takes into account anything (e.g. civics) that alters <player>'s ability to run corporations.
	"""
	player = PlayerUtil.getPlayer(playerOrID)
	bonuses = set()
	for eCorp, inputs in CORP_BONUSES.iteritems():
		if player.getHasCorporationCount(eCorp) > 0:
			bonuses |= inputs
	return bonuses
Пример #48
0
def getTradePartnersByPlayer(playerOrID, testFunction, *args):
    """
	Returns a list of CyPlayers that can trade with <player>.
	
	<testFunction> is passed two CyPlayers plus <args> for each viable pairing and should return a boolean value.
	"""
    player = PlayerUtil.getPlayer(playerOrID)
    partners = []
    for partner in tradeParters(player):
        if testFunction(player, partner, *args):
            partners.append(partner)
    return partners
Пример #49
0
def triggerRandomEvent(argsList):
    id = argsList[0]
    iData1 = argsList[1]
    BugUtil.debug("args: %r", argsList)

    type = None
    if id < gc.getNumEventTriggerInfos():
        type = gc.getEventTriggerInfo(id).getType()
    else:
        return
    BugUtil.alert("Event: %s [%d]", type, id)
    pPlayer = PlayerUtil.getPlayer(iData1)
    pPlayer.trigger(id)
Пример #50
0
def getTradePartnersByTeam(playerOrID, testFunction, *args):
    """
	Returns a list of CyPlayers that can trade with <player>.
	
	<testFunction> is passed two CyTeams plus <args> for each viable pairing and should return a boolean value.
	"""
    #DLP
    if CyGame().isPitbossHost():
        return
    player = PlayerUtil.getPlayer(playerOrID)
    team = PlayerUtil.getTeam(player.getTeam())
    partners = []
    for partner in tradeParters(player):
        if testFunction(team, PlayerUtil.getTeam(partner.getTeam()), *args):
            partners.append(partner)
    return partners
Пример #51
0
def getTradePartnersByTeam(playerOrID, testFunction, *args):
	"""
	Returns a list of CyPlayers that can trade with <player>.
	
	<testFunction> is passed two CyTeams plus <args> for each viable pairing and should return a boolean value.
	"""
	#DLP
	if CyGame().isPitbossHost():
		return
	player = PlayerUtil.getPlayer(playerOrID)
	team = PlayerUtil.getTeam(player.getTeam())
	partners = []
	for partner in tradeParters(player):
		if testFunction(team, PlayerUtil.getTeam(partner.getTeam()), *args):
			partners.append(partner)
	return partners
Пример #52
0
def getKnownTrainableUnits(playerOrID, askingPlayerOrID, knowableUnits, bonuses, military=None):
    player, team = PlayerUtil.getPlayerAndTeam(playerOrID)
    askingPlayer = PlayerUtil.getPlayer(askingPlayerOrID)
    eAskingTeam, askingTeam = PlayerUtil.getPlayerTeamAndID(askingPlayer)
    # trade = player.canTradeNetworkWith(askingPlayer.getID())
    cities = PlayerUtil.getPlayerCities(player, lambda city: city.isRevealed(eAskingTeam, False))
    # separate units into two groups: yes and maybe
    units = getTrainableUnits(playerOrID, knowableUnits, False, military)
    yesUnits = set()
    maybeUnits = set()
    BugUtil.debug("-----------------------")
    for eUnit in units:
        if not canAnyCityBuildUnit(eUnit, cities, eAskingTeam, False):
            BugUtil.debug("  no    %s", gc.getUnitInfo(eUnit).getDescription())
        elif hasBonusesForUnit(eUnit, bonuses):
            BugUtil.debug("  yes   %s", gc.getUnitInfo(eUnit).getDescription())
            yesUnits.add(eUnit)
        elif bonuses is None:
            BugUtil.debug("  maybe %s", gc.getUnitInfo(eUnit).getDescription())
            maybeUnits.add(eUnit)
    return yesUnits, maybeUnits
Пример #53
0
def getTradeableBonuses(fromPlayerOrID, toPlayerOrID):
	"""
	Returns two sets of bonus IDs that <fromPlayer> will and won't trade to <toPlayer>.
	
	Assumes that the two players can trade bonuses.
	"""
	fromPlayer = PlayerUtil.getPlayer(fromPlayerOrID)
	eToPlayer = PlayerUtil.getPlayerID(toPlayerOrID)
	fromPlayerIsHuman = fromPlayer.isHuman()
	will = set()
	wont = set()
	tradeData = TradeData()
	tradeData.ItemType = TradeableItems.TRADE_RESOURCES
	for eBonus in range(gc.getNumBonusInfos()):
		tradeData.iData = eBonus
		if fromPlayer.canTradeItem(eToPlayer, tradeData, False):
			if fromPlayerIsHuman or fromPlayer.canTradeItem(eToPlayer, tradeData, True):
				will.add(eBonus)
			else:
				wont.add(eBonus)
	return will, wont