aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorThomas Letan <contact@thomasletan.fr>2018-07-02 22:19:00 +0200
committerThomas Letan <contact@thomasletan.fr>2018-07-02 22:19:00 +0200
commitb727c4afeaf83fdc2e70dd9530383748e0f4843e (patch)
tree1bcb9d1cd7769a93fc4363ecaef589300b8f294d
parentfeature(client): Distinguish between looking at and direction (diff)
fix: Use the new push-action macro and gamekit:push-action API
-rw-r--r--lykanc/message.lisp66
1 files changed, 37 insertions, 29 deletions
diff --git a/lykanc/message.lisp b/lykanc/message.lisp
index d971cc9..e39a1b7 100644
--- a/lykanc/message.lisp
+++ b/lykanc/message.lisp
@@ -1,67 +1,75 @@
(cl:in-package :lykanc)
+(defmacro push-action (&rest body)
+ `(gamekit:push-action (lambda ()
+ ,@body)))
+
;; ATTRIBUTE_PUPPET
(defun handle-attribute-puppet (message app)
- (attribute-puppet app (jsown:val message "puppet_key")))
+ (push-action (attribute-puppet app (jsown:val message "puppet_key"))))
;; INSTANCE_DIGEST
(defun handle-instance-digest (message app)
- (let ((map-key (jsown:val (jsown:val message "map") "map_key"))
- (puppets (jsown:val message "puppets")))
- (init-map app map-key)
- (jsown:do-json-keys (key puppet-desc) puppets
- (add-puppet app key
- (jsown:val puppet-desc "x")
- (jsown:val puppet-desc "y")))))
+ (push-action
+ (let ((map-key (jsown:val (jsown:val message "map") "map_key"))
+ (puppets (jsown:val message "puppets")))
+ (init-map app map-key)
+ (jsown:do-json-keys (key puppet-desc) puppets
+ (add-puppet app key
+ (jsown:val puppet-desc "x")
+ (jsown:val puppet-desc "y"))))))
;; PUPPET ENTERS
(defun handle-puppet-enters (message app)
- (let* ((key (jsown:val message "puppet_key"))
- (digest (jsown:val message "digest")))
- (add-puppet app key (jsown:val digest "x") (jsown:val digest "y"))))
+ (push-action
+ (let* ((key (jsown:val message "puppet_key"))
+ (digest (jsown:val message "digest")))
+ (add-puppet app key (jsown:val digest "x") (jsown:val digest "y")))))
;; PUPPET MOVES
(defun handle-puppet-moves (message app)
- (let* ((key (jsown:val message "puppet_key"))
- (position (jsown:val message "position")))
- (puppet-moves app key (jsown:val position "x") (jsown:val position "y"))))
+ (push-action
+ (let* ((key (jsown:val message "puppet_key"))
+ (position (jsown:val message "position")))
+ (puppet-moves app key (jsown:val position "x") (jsown:val position "y")))))
;; PUPPET LEAVES
(defun handle-puppet-leaves (message app)
- (remove-puppet app (jsown:val message "puppet_key")))
+ (push-action (remove-puppet app (jsown:val message "puppet_key"))))
;; PUPPET STARTS
(defun handle-puppet-starts (message app)
- (puppet-starts-moving app (jsown:val message "puppet_key")))
+ (push-action (puppet-starts-moving app (jsown:val message "puppet_key"))))
;; PUPPET STOPS
(defun handle-puppet-stops (message app)
- (puppet-stops-moving app (jsown:val message "puppet_key")))
+ (push-action (puppet-stops-moving app (jsown:val message "puppet_key"))))
;; PUPPET DIRECTION
(defun handle-puppet-direction (message app)
- (let* ((str-dir (jsown:val message "direction"))
- (dir (cond
- ((string= str-dir "down") :down)
- ((string= str-dir "up") :up)
- ((string= str-dir "right") :right)
- ((string= str-dir "left") :left))))
- (puppet-changes-direction app
- (jsown:val message "puppet_key")
- dir)))
+ (push-action
+ (let* ((str-dir (jsown:val message "direction"))
+ (dir (cond
+ ((string= str-dir "down") :down)
+ ((string= str-dir "up") :up)
+ ((string= str-dir "right") :right)
+ ((string= str-dir "left") :left))))
+ (puppet-changes-direction app
+ (jsown:val message "puppet_key")
+ dir))))
;; PUPPET STARTS ATTACKING
(defun handle-puppet-attacks (message app)
- (puppet-attacks app (jsown:val message "puppet_key")))
+ (push-action (puppet-attacks app (jsown:val message "puppet_key"))))
;; PUPPET STOPS ATTACKING
(defun handle-puppet-stops-attack (message app)
- (puppet-stop-attack app (jsown:val message "puppet_key")))
+ (push-action (puppet-stop-attack app (jsown:val message "puppet_key"))))
;; PUPPET HURTED
(defun handle-puppet-hurted (message app)
- (puppet-hurted app (jsown:val message "puppet_key")))
+ (push-action (puppet-hurted app (jsown:val message "puppet_key"))))
;; Unknown message
(defun unknown-message (opcode cmd app)