diff options
| author | El-BG-1970 <elouangros@hotmail.com> | 2022-08-01 20:40:59 +0200 |
|---|---|---|
| committer | El-BG-1970 <elouangros@hotmail.com> | 2022-08-01 20:40:59 +0200 |
| commit | 00a46570d36720ab0ac4b6081b62ca96895a0acc (patch) | |
| tree | bde3856847b1a9e4c4ec6cc5b8ffd1b234840bb3 /src/player.lisp | |
| parent | 374cada07cb663cae76d0d1896cfad5172752fc3 (diff) | |
| download | transacc-00a46570d36720ab0ac4b6081b62ca96895a0acc.tar.gz | |
added sell-item method to player
Diffstat (limited to 'src/player.lisp')
| -rw-r--r-- | src/player.lisp | 17 |
1 files changed, 14 insertions, 3 deletions
diff --git a/src/player.lisp b/src/player.lisp index d497fed..394cee9 100644 --- a/src/player.lisp +++ b/src/player.lisp @@ -5,7 +5,8 @@ :get-cash :get-debt :repay-debt - :buy-item)) + :buy-item + :sell-item)) (in-package :player) @@ -33,11 +34,11 @@ :debt debt)) (defmethod get-debt ((p player)) - (with-slots (debt) player + (with-slots (debt) p debt)) (defmethod get-cash ((p player)) - (with-slots (cash) player + (with-slots (cash) p cash)) (defmethod buy-item ((p player) item quantity) @@ -50,6 +51,16 @@ (setq cash (- cash cost)) t))))) +(defmethod sell-item ((p player) item amount) + (with-slots (stock cash) p + (let ((stocked-item + (inventory:remove-item stock + (commodities:name item) amount))) + (when stocked-item + (setq cash + (+ cash (* (cdr stocked-item) + (commodities:price item)))))))) + (defmethod repay-debt ((p player) amount) (with-slots (debt cash) p (when (and (<= amount debt) |
