diff --git a/game.py b/game.py index 5f47472..cac025a 100644 --- a/game.py +++ b/game.py @@ -3917,7 +3917,6 @@ def take_summary(player: dict, summary: dict) -> dict: # can make it, the poster too, several at once. One posted for a building goes into # its fund (or fits it) while it still needs it, the rest to the stockpile. -ORDER_LIMIT = 5 # open orders per player ORDER_DAYS = 3 # before an order expires and is refunded INPUT_SHARE = 0.5 # of each piece's reward, split by value among whoever's reagents went in @@ -3964,8 +3963,6 @@ def post_order(world: dict, player: dict, kind: str, item: str, qty, provide, re return "Bad amount" if not isinstance(reward, int) or reward < 0: return "Bad reward" - if sum(o["by"] == player["id"] and o["status"] == "open" for o in world["orders"]) >= ORDER_LIMIT: - return f"At most {ORDER_LIMIT} open orders" action = ACTION_BY_ID[source] total = reward if kind == "craft" else reward * qty # a materials request pays per item if player["gold"] < total: @@ -6752,6 +6749,7 @@ PATCH_NOTES = [ {"date": "2026-10-28", "title": "Queue", "notes": [ ("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."), ("new", "Work orders: no size cap (was 500 crafted / 2,000 materials)."), + ("new", "Work orders: no cap on open orders (was 5)."), ("new", "Added a personal ledger to character sheet"), ("new", "Work orders no longer erase your crafting queue"), ("new", "Items link to where they're made: click to jump to the recipe."), @@ -6900,7 +6898,7 @@ def content() -> dict: "city_uses": {item: city_uses(item) for item in ITEMS}, "prayers": [{**prayer, "text": describe_prayer(prayer)} for prayer in PRAYERS], "max_prayers": MAX_PRAYERS, "potion_charges": POTION_CHARGES, "kit_defence": KIT_DEFENCE, "salve_cap": SALVE_CAP, "order_recipes": ORDER_RECIPES, "order_raw": ORDER_RAW, - "order_limit": ORDER_LIMIT, "make_max": MAKE_MAX, "input_share": INPUT_SHARE, "problems": PROBLEMS, "fittings": list(FITTING_BY_ID.values()), + "make_max": MAKE_MAX, "input_share": INPUT_SHARE, "problems": PROBLEMS, "fittings": list(FITTING_BY_ID.values()), "equip_slots": EQUIP_SLOTS, "class_speed": CLASS_SPEED, "rest_rate": REST_RATE, "bite": BITE, "eat_below": EAT_BELOW, "eat_choices": EAT_CHOICES, "abilities": combat.ABILITIES, "enemy_abilities": combat.ENEMY_ABILITIES, "unlock": combat.UNLOCK, "auto_cd": combat.AUTO_CD, "watch": combat.WATCH, "gcd": combat.GCD, "weapon_kits": combat.WEAPON_KITS, "group_size": GROUP_SIZE, "dungeon_size": DUNGEON_SIZE, "dungeon_wipes": DUNGEON_WIPES, "trade_ability": combat.TRADE_ABILITY, "potion_below": combat.POTION_BELOW,