diff --git a/game.py b/game.py index eb187c9..a74541c 100644 --- a/game.py +++ b/game.py @@ -3185,15 +3185,15 @@ def stop(player: dict, reason: str | None = None) -> None: def queueable(action: dict) -> bool: - """Crafting: turns materials into something. Only these can be queued.""" - return bool(action["inputs"] and action["outputs"]) and not ( + """Crafting and gathering: makes or gathers something. Only these can be queued.""" + return bool(action["outputs"]) and not ( action.get("enemy") or action.get("special") or action.get("together")) def queue_reason(world: dict, player: dict, action: dict) -> str | None: """Why it can't go in the queue. Materials are checked when its turn comes.""" if not queueable(action): - return "Only crafting can be queued" + return "Only crafting and gathering can be queued" if skill_level(player, action["skill"]) < action["level"]: return f"Needs level {action['level']}" if action.get("pattern") and action["pattern"] not in player.get("patterns", []): @@ -6286,6 +6286,7 @@ 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-27", "title": "Prayer", "notes": [ + ("new", "Gathering can be queued."), ("new", "Make X and queue counts go up to 9,999. Queue has no length cap."), ("balance", "Rebalanced favour values of items"), ("balance", "Prospecting: 3 ore per try (was 5), 50% gem chance (was 15%)."), diff --git a/static/app.js b/static/app.js index 7044b5e..d08ff5f 100644 --- a/static/app.js +++ b/static/app.js @@ -20,7 +20,7 @@ let seenOrders = null; // order ids already known, so only new ones toast let deliveredSeen = {}; // how much of each order had arrived let earnedSeen = {}; // gold each order had paid you for reagents let pickedClass = null; // registration -let queueOpen = false; // the crafting queue panel under the top bar +let queueOpen = false; // the queue panel under the top bar const tabs = {}; // skill -> selected recipe tab let refreshing = false; let refreshedFor = null; // action (start and length) a completion refresh was sent for @@ -777,7 +777,7 @@ function topbar() { chips += `Idle${S.me.stopped ? ` · ${esc(S.me.stopped)}` : ""}`; } if (S.me?.action?.left || S.me?.queue.length) { - chips += ``; + chips += ``; } const fires = S.me ? Object.keys(C.fires).map((id) => [id, fireNow(id)]) : []; if (fires.some(([, n]) => n.heat >= 0)) { @@ -791,7 +791,7 @@ function topbar() { return `
Empty. +Q on a recipe adds to it.
`} + ${rows ? `Empty. +Q on a recipe or gathering adds to it.
`}