Crafting cards: one-row buttons, list all missing reagents

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
rope 2026-10-28 19:09:33 +00:00
parent a205d429bd
commit 377f534f6b
3 changed files with 20 additions and 9 deletions

10
game.py
View file

@ -3053,10 +3053,10 @@ def can_start(world: dict, player: dict, action: dict) -> str | None:
if order is not None or "order" in (player["action"] or {}) and player["action"]["id"] == action["id"]:
if not order or order["status"] != "open" or order["claimed"] != player["id"] and not order.get("city"):
return "Work order done" if order and order["status"] == "done" else "Work order closed"
for item, qty in fire_inputs(world, action).items():
pooled = order["provided"].get(item, 0) if order else 0
if pooled + player["bank"].get(item, 0) < qty:
return f"Out of {ITEMS[item]['name'].lower()}"
short = [ITEMS[item]["name"].lower() for item, qty in fire_inputs(world, action).items()
if (order["provided"].get(item, 0) if order else 0) + player["bank"].get(item, 0) < qty]
if short:
return f"Out of: {', '.join(short)}"
if action.get("special") == "tend" and not tend_target(world, player, action):
return f"Your pile in the {FIRES[action['tend']]['name'].lower()} is full" if action["tend"] else "Your piles are all full"
if action.get("special") == "sabotage":
@ -6753,6 +6753,8 @@ ORDER_RECIPES, ORDER_RAW = _order_sources()
# line here (new / balance / fix), and a new release a new entry on top.
PATCH_NOTES = [
{"date": "2026-10-28", "title": "Queue", "notes": [
("fix", "Crafting cards: buttons stay on one row on phones and narrow cards."),
("new", "\"Out of:\" lists every missing reagent."),
("new", "Updated guild roster layout"),
("new", "Firekeeping: +Q next to 🔥 Tend all queues tending until your piles are full, then the queue moves on."),
("new", "City work orders: 🏘️ City when posting, or 🔨 on anything a building needs (goes straight into its fund). Anyone can craft them, several at once. Reagents earn their worth in favour, the maker the rest."),