From 374cada07cb663cae76d0d1896cfad5172752fc3 Mon Sep 17 00:00:00 2001 From: El-BG-1970 Date: Sun, 31 Jul 2022 18:15:19 +0200 Subject: added repay-debt to player --- src/player.lisp | 21 ++++++++++++++++++--- 1 file changed, 18 insertions(+), 3 deletions(-) (limited to 'src') diff --git a/src/player.lisp b/src/player.lisp index d91c32a..d497fed 100644 --- a/src/player.lisp +++ b/src/player.lisp @@ -2,8 +2,9 @@ (:use :cl) (:export :init-player :name - :cash - :debt + :get-cash + :get-debt + :repay-debt :buy-item)) (in-package :player) @@ -31,6 +32,14 @@ :cash cash :debt debt)) +(defmethod get-debt ((p player)) + (with-slots (debt) player + debt)) + +(defmethod get-cash ((p player)) + (with-slots (cash) player + cash)) + (defmethod buy-item ((p player) item quantity) (with-slots (stock cash) p (let ((cost (* quantity @@ -41,4 +50,10 @@ (setq cash (- cash cost)) t))))) - +(defmethod repay-debt ((p player) amount) + (with-slots (debt cash) p + (when (and (<= amount debt) + (<= amount cash)) + (setq cash (- cash amount) + debt (- debt amount)) + t))) -- cgit v1.2.3