More responsive drag and drop for card plays
This commit is contained in:
@@ -541,17 +541,17 @@ def play_card_route(
|
||||
if not ok:
|
||||
return HTMLResponse(f"<p class='alert alert-danger'>{msg}</p>", status_code=400)
|
||||
|
||||
# Return a success notification box that HTMX will show, or just return 204 to let polling pick it up.
|
||||
# Returning a message is nice! But returning 204 is clean. Let's return a brief HTML snippet.
|
||||
# Return a success notification and HX-Trigger header to refresh the hand.
|
||||
color_prefix = "🟩" if res["success"] else "🟥"
|
||||
drew_text = f" (Drew card: {res['drew_card']})" if res["drew_card"] else ""
|
||||
return HTMLResponse(
|
||||
f"<div class='play-notification' style='position:fixed;bottom:20px;right:20px;background:#152238;border:1px solid #d4af37;padding:15px;border-radius:8px;z-index:1000;' onclick='this.remove()'>"
|
||||
drew_attr = "true" if res["drew_card"] else "false"
|
||||
html = (
|
||||
f"<div class='play-notification' data-drew='{drew_attr}' style='position:fixed;bottom:20px;right:20px;background:#152238;border:1px solid #d4af37;padding:15px;border-radius:8px;z-index:1000;' onclick='this.remove()'>"
|
||||
f"<p>{color_prefix} {res['details']}{drew_text}</p>"
|
||||
f"<span style='font-size:0.8em;color:#aaa;'>Click to dismiss</span>"
|
||||
f"</div>",
|
||||
headers={"HX-Trigger": "hand-updated"}
|
||||
f"</div>"
|
||||
)
|
||||
return HTMLResponse(html, headers={"HX-Trigger": "hand-changed"})
|
||||
|
||||
# 12. Pi-Rat plays a Joker to replace an obstacle
|
||||
@app.post("/game/{game_id}/player/{player_id}/play-joker")
|
||||
@@ -566,13 +566,13 @@ def play_joker_route(
|
||||
if not ok:
|
||||
return HTMLResponse(f"<p class='alert alert-danger'>{msg}</p>", status_code=400)
|
||||
|
||||
return HTMLResponse(
|
||||
f"<div class='play-notification' style='position:fixed;bottom:20px;right:20px;background:#152238;border:1px solid #d4af37;padding:15px;border-radius:8px;z-index:1000;' onclick='this.remove()'>"
|
||||
html = (
|
||||
f"<div class='play-notification' data-drew='false' style='position:fixed;bottom:20px;right:20px;background:#152238;border:1px solid #d4af37;padding:15px;border-radius:8px;z-index:1000;' onclick='this.remove()'>"
|
||||
f"<p>🃏 Play Joker: Discarded obstacle and drew a new replacement!</p>"
|
||||
f"<span style='font-size:0.8em;color:#aaa;'>Click to dismiss</span>"
|
||||
f"</div>",
|
||||
headers={"HX-Trigger": "hand-updated"}
|
||||
f"</div>"
|
||||
)
|
||||
return HTMLResponse(html, headers={"HX-Trigger": "hand-changed"})
|
||||
|
||||
# 13. Toggle Objective Completion Checklist
|
||||
@app.post("/game/{game_id}/player/{player_id}/objective/toggle")
|
||||
|
||||
Reference in New Issue
Block a user