Work orders keep the crafting queue
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
parent
97ef606bbf
commit
70be493558
4 changed files with 52 additions and 13 deletions
|
|
@ -2610,6 +2610,29 @@ class WorkOrderTest(unittest.TestCase):
|
|||
self.assertNotIn("oak_plank", self.fred["bank"]) # the crafter brings what wasn't provided
|
||||
self.assertIsNone(self.fred["action"])
|
||||
|
||||
def test_an_order_mid_queue_puts_the_make_back_in_line(self):
|
||||
self.post_hammer()
|
||||
order = self.world["orders"][0]
|
||||
self.fred["bank"] = {"oak_plank": 1, "copper_bar": 8}
|
||||
game.start_action(self.world, self.fred, "mine_stone", T0)
|
||||
game.start_action(self.world, self.fred, "smith_copper_helmet", T0, once=2)
|
||||
game.queue_add(self.world, self.fred, "smith_copper_legs", 1, T0)
|
||||
self.assertIsNone(game.work_order(self.world, self.fred, order["id"], T0))
|
||||
self.assertEqual(self.fred["queue"], [{"id": "smith_copper_helmet", "n": 2}, {"id": "smith_copper_legs", "n": 1}])
|
||||
summary = game.process_player(self.world, self.fred, T0 + 3600, random.Random(1))
|
||||
self.assertEqual(order["status"], "done")
|
||||
self.assertEqual((self.fred["bank"].get("copper_helmet"), self.fred["bank"].get("copper_legs")), (2, 1))
|
||||
self.assertEqual((self.fred["action"]["id"], self.fred["queue"], summary["stopped"]), ("mine_stone", [], None))
|
||||
|
||||
def test_an_order_goes_back_to_what_you_were_doing(self):
|
||||
self.post_hammer()
|
||||
order = self.world["orders"][0]
|
||||
self.fred["bank"] = {"oak_plank": 1}
|
||||
game.start_action(self.world, self.fred, "mine_stone", T0)
|
||||
self.assertIsNone(game.work_order(self.world, self.fred, order["id"], T0))
|
||||
self.assertIsNone(game.drop_order(self.world, self.fred, order["id"], T0))
|
||||
self.assertEqual((self.fred["action"]["id"], order["claimed"]), ("mine_stone", None))
|
||||
|
||||
def test_cancelling_refunds_what_is_left(self):
|
||||
self.post_hammer()
|
||||
order = self.world["orders"][0]
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue