From a13e26b24c7daf4ec391467570111f799cb91a82 Mon Sep 17 00:00:00 2001 From: Thomas Hintz Date: Sat, 28 Mar 2020 15:40:21 -0700 Subject: [PATCH] Emergency loan support. --- src/components/farm/Board.jsx | 85 +++++++++++++++++++---------------- src/server/farm.scm | 6 +-- 2 files changed, 50 insertions(+), 41 deletions(-) diff --git a/src/components/farm/Board.jsx b/src/components/farm/Board.jsx index adf6e97..19ccfed 100644 --- a/src/components/farm/Board.jsx +++ b/src/components/farm/Board.jsx @@ -550,6 +550,11 @@ class Loans extends React.Component { this.setState({ repay: 0, takeOut: 0 }); } + handleEmergencyLoan = e => { + e.preventDefault(); + loan(1); + } + componentDidUpdate(prevProps) { if (this.props.player.debt !== prevProps.player.debt || this.props.game.settings.loanInterest !== prevProps.game.settings.loanInterest || @@ -559,44 +564,48 @@ class Loans extends React.Component { } render () { - return ( - - {' '} - - /${formatMoney(this.props.game.settings.maxDebt)} -
- {this.props.game.settings.loanInterest > 0 ? '(' + (this.props.game.settings.loanInterest * 100) + '% interest added to each loan)' : ''} -

-
- - -
- $: - - {'\u00A0'}K / ${this.props.player.debt / 1000}K -
- - - - -
- - -
- $: - - {'\u00A0'}K / ${this.state.maxLoan / 1000}K -
- - - - -
-
-
- ); + return ( + + {' '} + + /${formatMoney(this.props.game.settings.maxDebt)} +
+ {this.props.game.settings.loanInterest > 0 ? '(' + (this.props.game.settings.loanInterest * 100) + '% interest added to each loan)' : ''} +
+ {this.props.player.debt >= this.props.game.settings.maxDebt ? ( + <> $1,000 at 100% interest + ) : (<>)} +
+
+ + +
+ $: + + {'\u00A0'}K / ${this.props.player.debt / 1000}K +
+ + + + +
+ + +
+ $: + + {'\u00A0'}K / ${this.state.maxLoan / 1000}K +
+ + + + +
+
+
+ ); } } diff --git a/src/server/farm.scm b/src/server/farm.scm index 35b638b..8245c03 100644 --- a/src/server/farm.scm +++ b/src/server/farm.scm @@ -901,12 +901,12 @@ (if (> (+ (player-debt player) (farming-round (+ amount (* amount (game-setting 'loan-interest game))))) (game-setting 'max-debt game)) - (push-message player "Exceeds max loan.") + (begin (safe-set! (player-cash player) (+ (player-cash player) amount)) + (safe-set! (player-debt player) (+ (player-debt player) (* amount 2)))) (begin (safe-set! (player-cash player) (+ (player-cash player) amount)) (safe-set! (player-debt player) (+ (player-debt player) (farming-round - (+ amount (* amount (game-setting 'loan-interest game)))))) - (push-message player (conc "Loan of $" amount " taken out.")))) + (+ amount (* amount (game-setting 'loan-interest game)))))))) ;; repaying loan (cond ((> (abs amount) (player-cash player)) (push-message player "Not enough cash to repay loan."))