private boolean execute(CashCorrectionAction cashAction) { boolean result = false; CashHolder ch = cashAction.getCashHolder(); int amount = cashAction.getAmount(); String errMsg = null; while (true) { if (amount == 0) { errMsg = LocalText.getText("CorrectCashZero"); break; } if ((amount + ch.getCash()) < 0) { errMsg = LocalText.getText( "NotEnoughMoney", ch.getName(), Bank.format(ch.getCash()), Bank.format(-amount)); break; } break; } if (errMsg != null) { DisplayBuffer.add(LocalText.getText("CorrectCashError", ch.getName(), errMsg)); result = true; } else { // no error occured gameManager.getMoveStack().start(false); Bank bank = gameManager.getBank(); String msg; if (amount < 0) { // negative amounts: remove cash from cashholder new CashMove(ch, bank, -amount); msg = LocalText.getText("CorrectCashSubstractMoney", ch.getName(), Bank.format(-amount)); } else { // positive amounts: add cash to cashholder new CashMove(bank, ch, amount); msg = LocalText.getText("CorrectCashAddMoney", ch.getName(), Bank.format(amount)); } ReportBuffer.add(msg); gameManager.addToNextPlayerMessages(msg, true); result = true; } return result; }
@Override public String getText() { if (stockPrice != null) { return Bank.format(stockPrice.getPrice()) + " (" + stockPrice.getName() + ")"; } return ""; }