From 7abb751eb3d9213ba690ed4ae6b0dbbc099d8e46 Mon Sep 17 00:00:00 2001 From: LLLL Colonq Date: Tue, 22 Sep 2026 00:06:29 -0400 Subject: Update --- src/gizmo/wasp-tcg.el | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) (limited to 'src/gizmo/wasp-tcg.el') 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 -- cgit v1.3.1