def pay(self, source, player): mp = player.manapool # Now I have enough mana - how do I distribute it? payment = mp.distribute(self._final_cost) if not payment: # Ask the player to distribute payment = Mana.convert_mana_string( player.getManaChoice( str(player.manapool), Mana.convert_to_mana_string(self._final_cost))) mp.spend(payment) self.payment = Mana.convert_to_mana_string(payment)
def pay(self, source, player): mp = player.manapool # Now I have enough mana - how do I distribute it? payment = mp.distribute(self._final_cost) if not payment: # Ask the player to distribute payment = Mana.convert_mana_string(player.getManaChoice(str(player.manapool), Mana.convert_to_mana_string(self._final_cost))) mp.spend(payment) self.payment = Mana.convert_to_mana_string(payment)
def set_cost(self): def convert(val): if val == '': return 0 else: return int(val) mana = [self.mana.pay[c] for c in self.mana.colors] self.required = Mana.convert_mana_string(self.required_str) for i, val in enumerate(mana): for j in range(val): if self.required[i] == 0: self.required[-1] -= 1 else: self.required[i] -= 1 required = ''.join(["{%s}" % c for c in self.required_str]) manastr = ''.join( ["{%s}" % c for c in Mana.convert_to_mana_string(self.required)]) if manastr == "{0}": self.window.msg_controller.ask( u'The mana cost of %s is fulfilled' % required, ("OK", "Cancel")) else: msg = u"Select mana to pay %s\u2028(Total cost is %s)" % (manastr, required) # there's a layout bug if the starting element in a line isn't a glyph #msg = 'Select mana to pay remaining %s (total cost is %s)'%(manastr, required) self.window.msg_controller.notify(msg, "Cancel")
def set_cost(self): def convert(val): if val == "": return 0 else: return int(val) mana = [self.mana.pay[c] for c in self.mana.colors] self.required = Mana.convert_mana_string(self.required_str) for i, val in enumerate(mana): for j in range(val): if self.required[i] == 0: self.required[-1] -= 1 else: self.required[i] -= 1 required = "".join(["{%s}" % c for c in self.required_str]) manastr = "".join(["{%s}" % c for c in Mana.convert_to_mana_string(self.required)]) if manastr == "{0}": self.window.msg_controller.ask(u"The mana cost of %s is fulfilled" % required, ("OK", "Cancel")) else: msg = u"Select mana to pay %s\u2028(Total cost is %s)" % (manastr, required) # there's a layout bug if the starting element in a line isn't a glyph # msg = 'Select mana to pay remaining %s (total cost is %s)'%(manastr, required) self.window.msg_controller.notify(msg, "Cancel")