View difference between Paste ID: H7bmzEE9 and qNM99PXK
SHOW: | | - or go back to the newest paste.
1-
(defclass battle-entity ()
1+
(defclass battleentity ()
2
  ((name  :accessor nm
3
          :initarg :nm)
4-
  (health :accessor hp
4+
   (health :accessor hp
5-
          :initarg :hp)
5+
           :initarg :hp)
6-
  (attack :accessor atk
6+
   (attack :accessor atk
7-
          :initarg :atk)))
7+
           :initarg :atk)))
8
9-
(defmethod doattack ((self battle-entity) (target battle-entity))
9+
(defmethod doattack ((self battleentity) (target battleentity))
10
  (write-line (format nil "~a attacks ~a" 
11-
                            (nm self) (nm target)))
11+
                      (nm self) (nm target)))
12-
  (damaged target (atk self))
12+
  (damaged target (atk self)))
13-
)
13+
14-
(defmethod damaged ((self battle-entity) (damage integer))
14+
(defmethod damaged ((self battleentity) (damage integer))
15-
  (format t "~a takes ~a damage" 
15+
  (write-line (format nil "~a takes ~a damage" 
16-
                            (nm self) damage))
16+
                      (nm self) damage))
17-
  (setf (hp self) (- (hp self) damage))
17+
  (setf (hp self) (- (hp self) damage)))
18
19-
(defmethod status ((self battle-entity))
19+
(defmethod status ((self battleentity))
20-
  (format t "~a HP: ~a~%"
20+
  (write-line (format nil "~a HP: ~a~%"
21-
                      (nm self) (hp self)))
21+
                      (nm self) (hp self))))
22
23-
(defun make-battle-entity (name health attack)
23+
(defun makebattleentity (name health attack)
24-
  (setf temp (make-instance 'battle-entity 
24+
  (setf temp (make-instance 'battleentity 
25-
               :nm name
25+
                            :nm name
26-
               :hp health
26+
                            :hp health
27-
               :atk attack))
27+
                            :atk attack))
28
  temp)
29
30-
(setf battlers (list (make-battle-entity "Player" 100 25) 
30+
(setf battlers (list (makebattleentity "Player" 100 25) 
31-
                     (make-battle-entity "Goblin" 60  5)
31+
                     (makebattleentity "Goblin" 60  5)
32-
                     (make-battle-entity "Troll" 500 80)
32+
                     (makebattleentity "Troll" 500 80)
33-
                     (make-battle-entity "Hero" 100 560)))
33+
                     (makebattleentity "Hero" 100 560)))
34
35
(setf a (nth 1 battlers) b (nth 2 battlers))
36
(loop 
37-
  while (<= 0 (min (hp a) (hp b))) do
37+
   while (<= 0 (min (hp a) (hp b))) do
38-
    (doattack a b)
38+
     (doattack a b)
39-
    (status b)
39+
     (status b)
40-
    (doattack b a)
40+
     (doattack b a)
41-
    (status a))
41+
     (status a))