diff options
| author | LLLL Colonq <llll@colonq> | 2026-09-22 00:06:29 -0400 |
|---|---|---|
| committer | LLLL Colonq <llll@colonq> | 2026-09-22 00:06:29 -0400 |
| commit | 7abb751eb3d9213ba690ed4ae6b0dbbc099d8e46 (patch) | |
| tree | c051022c2eca4373233a874d1d714d58e807d97e /src/gizmo | |
| parent | 07f5a19d7930d1d912d05c95d9cc5b4b0c407383 (diff) | |
Diffstat (limited to 'src/gizmo')
| -rw-r--r-- | src/gizmo/wasp-tcg.el | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/src/gizmo/wasp-tcg.el b/src/gizmo/wasp-tcg.el index 081a777b..17ffc129 100644 --- a/src/gizmo/wasp-tcg.el +++ b/src/gizmo/wasp-tcg.el @@ -272,5 +272,33 @@ (let ((msg (format "%s" (w/tcg-encode-card user userid c)))) (w/binary-pub "overlay tcg generate" msg))))) +;;;; Dueling +(defun w/tcg-random-card-for (uid k) + "Retrieve a random card for UID and pass it to K." + (let ((inv (s-concat "tcg-inventory:" uid))) + (w/db-llen inv + (lambda (len) + (w/db-lindex inv (random len) + (lambda (uuid) + (request (format "https://api.colonq.computer/api/tcg/card/%s.png" uuid) + :method "GET" + :encoding 'no-conversion + :success + (cl-function + (lambda (&key data &allow-other-keys) + (funcall k (encode-coding-string data 'no-conversion))))))))))) + +(defun w/tcg-duel (user1 user2) + "Start a duel between USER1 and USER2." + (w/async-all + (w/user-id-from-name user1) + (w/user-id-from-name user2) + (lambda (uid1 uid2) + (w/async-all + (w/tcg-random-card-for uid1) + (w/tcg-random-card-for uid2) + (lambda (card1 card2) + (w/overlay-duel user1 user2 card1 card2)))))) + (provide 'wasp-tcg) ;;; wasp-tcg.el ends here |
