luvcraft/lobby-tests.lisp
Inventory's AROUND lifecycle and Status's AFTER lifecycle occupy distinct coordinates instead of silently replacing one another.
The socket-owning edge used by one LOBBY-CLIENT worker.
(transport connection client)Subscribe CONNECTION to CLIENT's shared lobby topics.
(transport connection client payload)Publish CLIENT's retained presence PAYLOAD.
(transport connection client)Return TOPIC and PAYLOAD for one publication, or NIL on a bounded idle poll.
(transport connection client)Close CONNECTION without allowing an error to escape cleanup.
(overlay)Release resources owned by an object attached to luvcraft.
A native destination with a lifetime and frame clock.
(canvas function)Run FUNCTION with a timestamp on CANVAS's native frame/event thread. The initial native implementation is synchronous: the caller waits for the function's values. The protocol leaves room for a real frame scheduler.
(predicate)(overlay-class)(&key (name (default-lobby-participant-name))
(client-id-prefix "luv")
(transport (make-instance 'mqtt-lobby-transport)))(session)Start SESSION's optional background lobby service and return it.
(client)Logical negation of one test or raw truth value.
(client)Test whether one compatible scalar is at least another.
(client &key (timeout 3/4))Request cooperative stop and wait at most TIMEOUT seconds. No transport operation occurs on the caller. Repeated stops are idempotent.
(session)Attach the player HUD supplied by the loaded presentation system. LUVCRAFT/CORE deliberately has no presentation-system dependency. LUVCRAFT/MCCLIM specializes this at the session boundary and returns its attached overlay.
(session)Test whether two compatible scalars are equal.
(overlay)Return where OVERLAY draws: :SCENE, :WORLD-PANEL, :VIEWMODEL, :HUD, or :NONE. Scene overlays inhabit world depth; viewmodels are first-person geometry above the world but below held items and the crosshair. World panels retain world projection and depth while drawing analytic application graphics at native…
(session)(owner)Return OWNER's ordered status channel symbols. The default method supplies the application channels. A game adds sparse fields with an ordinary method which appends to CALL-NEXT-METHOD; it never has to replace the status frame or its sampling and presentation policy.
(overlay session canvas event)Handle EVENT projected onto OVERLAY, returning true when consumed.
(overlay session)Return left, top, right, and bottom pixel insets obscured by OVERLAY.
(session)All named failures from a completed release sequence.
The live game session in this Lisp, or NIL.
(client topic payload)Publish one transport TOPIC/PAYLOAD into CLIENT's semantic local state.
One Telegram connection and roster, driven on its own thread, publishing a finished view for a McCLIM frame to paint.
(console)Leave the manual API-ID prompt when credentials appeared asynchronously. The next console pass opens normally, using a stored session or QR login.
Reinstalling the same stopped client exercises the adapter's durable-image restart path without opening a real MQTT socket.