emacs-elpa-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[nongnu] elpa/pacmacs 97973dd305 288/472: Rough implementaion of escapin


From: ELPA Syncer
Subject: [nongnu] elpa/pacmacs 97973dd305 288/472: Rough implementaion of escaping for TGs (#153)
Date: Thu, 6 Jan 2022 21:59:32 -0500 (EST)

branch: elpa/pacmacs
commit 97973dd305c006d368f9ebf0c7ee99457306b38d
Author: rexim <reximkut@gmail.com>
Commit: rexim <reximkut@gmail.com>

    Rough implementaion of escaping for TGs (#153)
---
 pacmacs-utils.el |  7 +++++++
 pacmacs.el       | 14 ++++++++++++++
 2 files changed, 21 insertions(+)

diff --git a/pacmacs-utils.el b/pacmacs-utils.el
index 2c14345a2f..f00b07a980 100644
--- a/pacmacs-utils.el
+++ b/pacmacs-utils.el
@@ -72,6 +72,13 @@ side-effects."
     (cdr (assoc direction-vector
                 direction-table))))
 
+(defun pacmacs--opposite-direction-name (direction-name)
+  (cl-case direction-name
+    ('left 'right)
+    ('right 'left)
+    ('up 'down)
+    ('down 'up)))
+
 (defun pacmacs--levelname-from-filename (filename)
   (when (string-match "\\(map[0-9]+\\)\\.txt" filename)
     (match-string 1 filename)))
diff --git a/pacmacs.el b/pacmacs.el
index e8aac93d96..439e8ec689 100644
--- a/pacmacs.el
+++ b/pacmacs.el
@@ -336,6 +336,13 @@
     (let ((direction (pacmacs--cell-wrapped-get pacmacs--track-board row 
column)))
       (pacmacs--switch-direction game-object direction))))
 
+(defun pacmacs--back-track-object (game-object)
+  (plist-bind ((row :row)
+               (column :column))
+      game-object
+    (let ((direction (pacmacs--cell-wrapped-get pacmacs--track-board row 
column)))
+      (pacmacs--switch-direction game-object (pacmacs--opposite-direction-name 
direction)))))
+
 (defun pacmacs-tick ()
   (interactive)
 
@@ -358,6 +365,11 @@
     (pacmacs--track-object ghost)
     (pacmacs--step-object ghost)))
 
+(defun pacmacs--step-terrified-ghosts ()
+  (dolist (terrified-ghost pacmacs--terrified-ghosts)
+    (pacmacs--back-track-object terrified-ghost)
+    (pacmacs--step-object terrified-ghost)))
+
 (defun pacmacs--detect-pill-collision ()
   (plist-bind ((row :row)
                (column :column))
@@ -378,6 +390,7 @@
     (pacmacs--anim-object-next-frame pacmacs--player-state 
pacmacs-tick-duration-ms)
     (pacmacs--anim-object-list-next-frame pacmacs--ghosts 
pacmacs-tick-duration-ms)
     (pacmacs--anim-object-list-next-frame pacmacs--pills 
pacmacs-tick-duration-ms)
+    (pacmacs--anim-object-list-next-frame pacmacs--terrified-ghosts 
pacmacs-tick-duration-ms)
 
     (pacmacs--recalc-track-board)
     (if pacmacs--pills
@@ -388,6 +401,7 @@
                      (pacmacs--switch-to-death-state))
             (pacmacs--detect-pill-collision)
             (pacmacs--step-ghosts)
+            (pacmacs--step-terrified-ghosts)
             (when (pacmacs--ghost-collision-p)
               (dolist (ghost pacmacs--ghosts)
                 (pacmacs--step-back-object ghost))



reply via email to

[Prev in Thread] Current Thread [Next in Thread]