summaryrefslogtreecommitdiffstats
path: root/src/player.lisp
diff options
context:
space:
mode:
Diffstat (limited to 'src/player.lisp')
-rw-r--r--src/player.lisp53
1 files changed, 0 insertions, 53 deletions
diff --git a/src/player.lisp b/src/player.lisp
index 6bcf173..bff62aa 100644
--- a/src/player.lisp
+++ b/src/player.lisp
@@ -5,59 +5,6 @@
(in-package :player)
-(defclass inventory ()
- ((size :initarg :size
- :reader size)
- (filled :initform 0
- :accessor filled)
- (items :initform '()
- :accessor items)))
-
-(defmethod find-item ((inv inventory) name)
- (with-slots (items) inv
- (find-if
- #'(lambda (i)
- (equal (commodities:name (car i)) name))
- items)))
-
-(defmethod delete-item ((inv inventory) item)
- ;; removes <item> from inventory list and substracts
- ;; its stored quantity from the filled attribute
- (with-slots (filled items) inv
- (setq items (remove item items))
- (setq filled (- filled (cdr item)))))
-
-(defmethod add-item ((inv inventory) item quantity)
- ;; add <quantity> of <item> to inventory
- (with-slots (size filled items) inv
- (when (> size (+ filled quantity))
- (let* ((old-item
- (find-item inv (commodities:name item)))
- (qt (if old-item
- (progn
- (delete-item inv old-item)
- (+ quantity (cdr old-item)))
- quantity)))
- (prog1
- (setq filled (+ filled qt))
- (push (cons item qt)
- items))))))
-
-(defmethod remove-item ((inv inventory) name quantity)
- ;; remove <quantity> of <item> from inventory
- ;; quantity must be positive or zero
- (assert (>= quantity 0))
- (with-slots (filled items) inv
- (let ((item (find-item inv name)))
- (when item
- (delete-item inv item)
- (if (< quantity (cdr item))
- (progn
- (add-item inv
- (car item)
- (- (cdr item) quantity))
- (cons (car item) quantity))
- item)))))
(defclass player ()
((name :initarg :name