aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGravatar Pouar <pouar@pouar.net>2020-07-21 09:56:28 -0500
committerGravatar Pouar <pouar@pouar.net>2020-07-21 09:56:28 -0500
commitef9ec92bb047625f8ed2f2d634517a791221a4c2 (patch)
tree69101174307d03528971e67c1e8d106e442ea809
parentindention (diff)
add more valid element types to moves
status conditions are handled by different functions than calculating damage, so it should be fine to add element types to moves that only affect status conditions
-rw-r--r--data/moves/pokemon.lisp15
-rw-r--r--data/moves/regular.lisp18
2 files changed, 22 insertions, 11 deletions
diff --git a/data/moves/pokemon.lisp b/data/moves/pokemon.lisp
index 20188db..30875eb 100644
--- a/data/moves/pokemon.lisp
+++ b/data/moves/pokemon.lisp
@@ -14,7 +14,8 @@
(defclass watersport (wet-move-mixin) ()
(:default-initargs
:name "Watersport"
- :description "Soak your diapers"))
+ :description "Soak your diapers"
+ :element-types (list (make-instance 'yadfa-element-types:abdl))))
(defmethod attack ((target base-character) (user base-character) (attack watersport))
(declare (ignore target))
(format t "~a used ~a~%" (name-of user) (name-of attack))
@@ -25,7 +26,8 @@
(defclass mudsport (mess-move-mixin) ()
(:default-initargs
:name "Mudsport"
- :description "mess your diapers"))
+ :description "mess your diapers"
+ :element-types (list (make-instance 'yadfa-element-types:abdl))))
(defmethod attack ((target base-character) (user base-character) (attack mudsport))
(declare (ignore target))
(format t "~a used ~a~%" (name-of user) (name-of attack))
@@ -39,7 +41,8 @@
(:default-initargs
:name "Mud Bomb"
:description "massively mess your diapers, never fails"
- :energy-cost 5))
+ :energy-cost 5
+ :element-types (list (make-instance 'yadfa-element-types:abdl) (make-instance 'yadfa-element-types:poison))))
(defmethod attack ((target base-character) (user base-character) (attack mudbomb))
(format t "~a used ~a~%" (name-of user) (name-of attack))
(write-line "But it failed."))
@@ -69,7 +72,8 @@
(defclass tackle (move) ()
(:default-initargs
:name "Tackle"
- :description "Tackles the enemy"))
+ :description "Tackles the enemy"
+ :element-types (list (make-instance 'yadfa-element-types:normal))))
(defclass roar (move) ()
(:default-initargs
:name "Roar"
@@ -93,4 +97,5 @@
(:default-initargs
:name "Bite"
:description "Bites the enemy"
- :power 80))
+ :power 80
+ :element-types (list (make-instance 'yadfa-element-types:dark))))
diff --git a/data/moves/regular.lisp b/data/moves/regular.lisp
index 485cd7c..22665e3 100644
--- a/data/moves/regular.lisp
+++ b/data/moves/regular.lisp
@@ -3,7 +3,8 @@
(defclass mush (move) ()
(:default-initargs
:name "Mush"
- :description "Mush the target's diaper"))
+ :description "Mush the target's diaper"
+ :element-types (list (make-instance 'yadfa-element-types:abdl))))
(defmethod attack ((target base-character) (user base-character) (attack mush))
(declare (ignore attack))
(if (filter-items (wear-of user) 'incontinence-product)
@@ -87,7 +88,8 @@
(:default-initargs
:name "Spray"
:description "Spray the target with skunk spray. Also fills your pamps with skunk spray while you're at it."
- :energy-cost 5))
+ :energy-cost 5
+ :element-types (list (make-instance 'yadfa-element-types:poison))))
(defmethod attack ((target base-character) (user base-character) (attack spray))
(format t "~a used ~a~%" (name-of user) (name-of attack))
(let ((amount 50))
@@ -150,7 +152,8 @@
:name "Face Sit"
:energy-cost 3
:power 40
- :description "Sits on the enemy's face and messes"))
+ :description "Sits on the enemy's face and messes"
+ :element-types (list (make-instance 'yadfa-element-types:abdl) (make-instance 'yadfa-element-types:poison))))
(defmethod attack ((target base-character) (user base-character) (self face-sit))
(format t "~a used ~a~%" (name-of user) (name-of self))
(let* ((m (mess :messer user))
@@ -168,7 +171,8 @@
(defclass teleporting-flood (wet-move-mixin) ()
(:default-initargs
:name "Teleporting Flood"
- :description "Flood your diapers, but enchants the diaper so it all teleports into someone else's diaper."))
+ :description "Flood your diapers, but enchants the diaper so it all teleports into someone else's diaper."
+ :element-types (list (make-instance 'yadfa-element-types:abdl))))
(defmethod attack ((target base-character) (user base-character) (self teleporting-flood))
(format t "~a used ~a~%" (name-of user) (name-of self))
(if (< (bladder/contents-of user) (bladder/need-to-potty-limit-of user))
@@ -179,7 +183,8 @@
(defclass teleporting-mess (mess-move-mixin) ()
(:default-initargs
:name "Teleporting Mess"
- :description "Mess your diapers, but enchants the diaper so it all teleports into someone else's diaper."))
+ :description "Mess your diapers, but enchants the diaper so it all teleports into someone else's diaper."
+ :element-types (list (make-instance 'yadfa-element-types:abdl) (make-instance 'yadfa-element-types:poison))))
(defmethod attack ((target base-character) (user base-character) (self teleporting-mess))
(format t "~a used ~a~%" (name-of user) (name-of self))
(if (< (bowels/contents-of user) (bowels/need-to-potty-limit-of user))
@@ -191,7 +196,8 @@
(:default-initargs
:name "fart"
:description "Grosses out the enemies with gas. If poisoned or if desperate, you may end up messing yourself instead."
- :energy-cost 10))
+ :energy-cost 10
+ :element-types (list (make-instance 'yadfa-element-types:abdl) (make-instance 'yadfa-element-types:poison))))
(defmethod attack ((target base-character) (user base-character) (attack fart))
(f:fmt t (name-of user) " used " (name-of attack) #\Newline
"But it failed." #\Newline))