diff options
author | Thomas Letan <contact@thomasletan.fr> | 2018-07-02 22:19:00 +0200 |
---|---|---|
committer | Thomas Letan <contact@thomasletan.fr> | 2018-07-02 22:19:00 +0200 |
commit | b727c4afeaf83fdc2e70dd9530383748e0f4843e (patch) | |
tree | 1bcb9d1cd7769a93fc4363ecaef589300b8f294d | |
parent | feature(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.lisp | 66 |
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) |