예제 #1
0
def canTrade(playerOrID, withPlayerOrID):
    """
	Returns True if <player> can open the trade window with <withPlayer>.
	"""
    return DiplomacyUtil.canContact(
        playerOrID, withPlayerOrID) and DiplomacyUtil.isWillingToTalk(
            withPlayerOrID, playerOrID)
예제 #2
0
 def check(self):
     if (not Civ4lertsOpt.isShowRefusesToTalkAlert()):
         return
     eActivePlayer, activePlayer = PlayerUtil.getActivePlayerAndID()
     try:  # advc.009b
         refusals = self.refusals[eActivePlayer]
     # <advc.009b>
     except (AttributeError, KeyError):
         return  # </advc.009b>
     newRefusals = set()
     newRefusalsDisplay = set(
     )  # advc.106d: Don't necessarily display them all
     for player in PlayerUtil.players(True, False, False, False):
         if DiplomacyUtil.canContact(
                 activePlayer,
                 player) and not DiplomacyUtil.isWillingToTalk(
                     player, eActivePlayer):
             newRefusals.add(player.getID())
             # <advc.106d> Don't report refusal when war just begun, nor when stopped trading (i.e. when not at war).
             if gc.getTeam(gc.getPlayer(eActivePlayer).getTeam()).isAtWar(
                     player.getTeam()) and gc.getTeam(
                         gc.getPlayer(eActivePlayer).getTeam()
                     ).AI_getAtWarCounter(player.getTeam()) > 1:
                 newRefusalsDisplay.add(player.getID())  # </advc.106d>
     self.display(eActivePlayer, "TXT_KEY_CIV4LERTS_ON_WILLING_TO_TALK",
                  refusals.difference(newRefusals))
     self.display(eActivePlayer, "TXT_KEY_CIV4LERTS_ON_REFUSES_TO_TALK",
                  newRefusalsDisplay.difference(
                      refusals))  # advc.106d: was newRefusals...
     self.refusals[eActivePlayer] = newRefusals
예제 #3
0
	def _reset(self):
		self.refusals = {}
		for player in PlayerUtil.players():
			# <advc.106c>
			playerID = player.getID()
			self.refusals[playerID] = set()
			for rival in PlayerUtil.players(True, False, False, False):
				if DiplomacyUtil.canContact(player, rival) and not DiplomacyUtil.isWillingToTalk(rival, playerID):
					self.refusals[playerID].add(rival.getID())
예제 #4
0
	def check(self):
		if (not Civ4lertsOpt.isShowRefusesToTalkAlert()):
			return
		eActivePlayer, activePlayer = PlayerUtil.getActivePlayerAndID()
		refusals = self.refusals[eActivePlayer]
		newRefusals = set()
		for player in PlayerUtil.players(True, False, False, False):
			if DiplomacyUtil.canContact(activePlayer, player) and not DiplomacyUtil.isWillingToTalk(player, eActivePlayer):
				newRefusals.add(player.getID())
		self.display(eActivePlayer, "TXT_KEY_CIV4LERTS_ON_WILLING_TO_TALK", refusals.difference(newRefusals))
		self.display(eActivePlayer, "TXT_KEY_CIV4LERTS_ON_REFUSES_TO_TALK", newRefusals.difference(refusals))
		self.refusals[eActivePlayer] = newRefusals
예제 #5
0
	def check(self):
		if (not Civ4lertsOpt.isShowRefusesToTalkAlert()):
			return
		eActivePlayer, activePlayer = PlayerUtil.getActivePlayerAndID()
		refusals = self.refusals[eActivePlayer]
		newRefusals = set()
		for player in PlayerUtil.players(True, False, False, False):
			if DiplomacyUtil.canContact(activePlayer, player) and not DiplomacyUtil.isWillingToTalk(player, eActivePlayer):
				newRefusals.add(player.getID())
		self.display(eActivePlayer, "TXT_KEY_CIV4LERTS_ON_WILLING_TO_TALK", refusals.difference(newRefusals))
		self.display(eActivePlayer, "TXT_KEY_CIV4LERTS_ON_REFUSES_TO_TALK", newRefusals.difference(refusals))
		self.refusals[eActivePlayer] = newRefusals
예제 #6
0
def canTrade(playerOrID, withPlayerOrID):
	"""
	Returns True if <player> can open the trade window with <withPlayer>.
	"""
	return DiplomacyUtil.canContact(playerOrID, withPlayerOrID) and DiplomacyUtil.isWillingToTalk(withPlayerOrID, playerOrID)