def withdraw(self):
""" Withdraw money from the bank.
"""
# Don't withdraw more money than the bank has
gross_amount = min(self.__bank_balance, self._config.bank_withdraw)
# If the traits supports a max user balance, don't withdraw more
# than that amount
if self.__bank_traits['max_user_balance']:
gross_amount = min(
max(0, self.__bank_traits['max_user_balance'] - self.__user_balance),
gross_amount)
print('capping withdrawal to ', gross_amount)
fee = math.trunc(self.calculate_fee(gross_amount))
nett_amount = max(0, gross_amount - fee)
# update the bank balance
new_balance = max(0, self.__bank_balance - gross_amount)
self.update_bank_balance(new_balance)
# add to user balance
if not self.dry_run:
if self._config.bank_type == 'mana':
self._hs.set_mp(self.__user_balance + nett_amount)
elif self._config.bank_type == 'health':
self._hs.set_hp(self.__user_balance + nett_amount)
else:
self._hs.set_gp(self.__user_balance + nett_amount)
message = '{2} Withdrew: {0}, Fee: {1}'.format(
nett_amount,
fee,
self.__bank_traits['icon'])
self.notify(message)
评论列表
文章目录