aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGravatar Pouar <pouar@pouar.net>2020-09-16 17:42:34 -0500
committerGravatar Pouar <pouar@pouar.net>2020-09-16 17:42:34 -0500
commit2718c5d206c62c892eeb305fec9d11e85d56ca59 (patch)
tree000029cabd74fd10e63284ecd9ab70888a806d74
parentadd scratch move (diff)
add werewolfs
-rw-r--r--data/enemies/haunted.lisp30
-rw-r--r--packages.lisp2
2 files changed, 32 insertions, 0 deletions
diff --git a/data/enemies/haunted.lisp b/data/enemies/haunted.lisp
index 7d8b337..3abf260 100644
--- a/data/enemies/haunted.lisp
+++ b/data/enemies/haunted.lisp
@@ -37,3 +37,33 @@
(setf j t))
(finally (return j))))
(write-line "it had no effect")))
+(defclass werewolf (potty-enemy) ()
+ (:default-initargs
+ :name "Werewolf"
+ :description "A scary werewolf"
+ :species "Werewolf"
+ :male (a:random-elt '(t nil))
+ :element-types '(#.(make-instance 'yadfa-element-types:dark))
+ :moves (make-instances yadfa-moves:bite yadfa-moves:roar yadfa-moves:scratch)))
+(defmethod initialize-instance :after
+ ((c werewolf) &key (wear nil wearp) &allow-other-keys)
+ (declare (ignore wear))
+ (unless wearp
+ (setf (wear-of c)
+ (let (wear
+ (malep (malep c)))
+ (push (make-instance (if malep
+ 'yadfa-items:boxers
+ 'yadfa-items:panties))
+ wear)
+ (push (make-instance 'yadfa-items:jeans)
+ wear)
+ (unless malep
+ (push (make-instance 'yadfa-items:bra)
+ wear))
+ wear))))
+(defclass domesticated-werewolf (werewolf) ()
+ (:default-initargs
+ :name "Domesticated Werewolf"
+ :description "These are kept by the ghosts as pets. The ghosts like to pretend they aren't housebroken, so they aren't allowed inside without diapers."
+ :wear (make-instances yadfa-items:collar yadfa-items:thick-diaper)))
diff --git a/packages.lisp b/packages.lisp
index 0bfdf20..b2dc4b8 100644
--- a/packages.lisp
+++ b/packages.lisp
@@ -617,6 +617,8 @@
#:diapered-dragon
#:dergy
#:ghost
+ #:werewolf
+ #:domesticated-werewolf
#:catchable-enemy
#:catch-chance-of
#:raptor