aboutsummaryrefslogtreecommitdiff
path: root/src/macroknight/utils.hy
diff options
context:
space:
mode:
authorGene Pasquet <dev@etenil.net>2025-05-18 08:38:25 +0100
committerGene Pasquet <dev@etenil.net>2025-05-18 08:38:25 +0100
commit1cf28e193729ee64a17e6464ce7310c67f5eae34 (patch)
tree906ff27f5e533397f4f760a245d0606232a87b1f /src/macroknight/utils.hy
parentbe71ead1e21d55049a18747f2d0d2159b11868f3 (diff)
Progress on animations and enemies
Diffstat (limited to 'src/macroknight/utils.hy')
-rw-r--r--src/macroknight/utils.hy32
1 files changed, 32 insertions, 0 deletions
diff --git a/src/macroknight/utils.hy b/src/macroknight/utils.hy
index a857d02..dde8d2e 100644
--- a/src/macroknight/utils.hy
+++ b/src/macroknight/utils.hy
@@ -1,3 +1,31 @@
+(import enum [Enum])
+
+(defclass Direction [Enum]
+ (setv UP "UP")
+ (setv DOWN "DOWN")
+ (setv LEFT "LEFT")
+ (setv RIGHT "RIGHT")
+
+ (defn [staticmethod] from-move [move]
+ #((.x-from-move Direction move)
+ (.y-from-move Direction move)))
+
+ (defn [staticmethod] x-from-move [move]
+ (if (>= (get move 0) 0)
+ Direction.RIGHT
+ Direction.LEFT))
+
+ (defn [staticmethod] y-from-move [move]
+ (if (>= (get move 0) 0)
+ Direction.DOWN
+ Direction.UP))
+
+ (defn [staticmethod] x-between-points [point1 point2]
+ (let [delta-x (abs (- (get point1 0) (get point2 0)))]
+ (if (>= delta-x 0)
+ Direction.RIGHT
+ Direction.LEFT))))
+
(defn neg [value]
(* -1 value))
@@ -12,3 +40,7 @@
#((+ (get end-move 0) (get move 0))
(+ (get end-move 1) (get move 1)))))
end-move))
+
+(defn sub-points [point1 point2]
+ #((- (get point2 0) (get point1 0))
+ (- (get point2 1) (get point2 1))))