Queue: swap #1 with the current make

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
rope 2026-10-28 08:32:54 +00:00
parent fa960e1d6c
commit 3d93fabbfd
4 changed files with 43 additions and 1 deletions

View file

@ -212,6 +212,21 @@ class ActionTest(unittest.TestCase):
self.assertEqual(p["action"]["id"], "mine_stone")
self.assertEqual(game.skip_make(world, p, T0 + 7), "Not making anything")
def test_queue_swap_with_current(self):
world, p = self._smith(20)
game.start_action(world, p, "smith_copper_helmet", T0, once=3)
game.queue_add(world, p, "smith_copper_legs", 1, T0)
game.queue_add(world, p, "smith_copper_sword", 2, T0)
p["action"]["left"] = 2
self.assertIsNone(game.queue_now(world, p, 1, T0 + 5))
self.assertEqual((p["action"]["id"], p["action"]["left"], p["action"]["resume"], p["action"]["start"]),
("smith_copper_sword", 2, "mine_stone", T0 + 5))
self.assertEqual([(q["id"], q["n"]) for q in p["queue"]],
[("smith_copper_helmet", 2), ("smith_copper_legs", 1)])
self.assertEqual(game.queue_now(world, p, 2, T0 + 6), "Not in the queue")
p["action"] = {"id": "mine_stone", "start": T0}
self.assertEqual(game.queue_now(world, p, 0, T0 + 6), "Not making anything")
def test_offline_cap(self):
world = world_with(("fred", "commoner"))
p = world["players"]["fred"]