Work orders: show what a lit fire pays

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
rope 2026-10-24 18:56:15 +01:00
parent 2bcda564b8
commit 517b560019
4 changed files with 51 additions and 11 deletions

View file

@ -2606,6 +2606,22 @@ class FirekeepingTest(unittest.TestCase):
self.fires["still"]["fuel"] = [{"tier": 0, "left": 600, "by": "kai"}]
self.assertEqual(game.fire_inputs(self.world, brew), {"guam_leaf": 1, "logs": 1})
def test_a_lit_fire_pays_for_work_orders_too(self):
self.fires["forge"].update(fuel=[{"tier": 0, "left": 60000, "by": "kai"}], at=T0)
self.world["players"]["mo"] = mo = game.new_player("mo", "Mo", "commoner", T0)
mo["gold"], mo["bank"] = 100, {"copper_ore": 5, "logs": 5}
self.assertEqual(game.post_order(self.world, mo, "craft", "copper_bar", 5, ["copper_ore", "logs"], 50, T0),
"The forge pays that")
self.assertIsNone(game.post_order(self.world, mo, "craft", "copper_bar", 5, ["copper_ore"], 50, T0))
order = self.world["orders"][0]
self.assertEqual(game.provide_reagent(self.world, mo, order["id"], "logs"), "The forge pays that")
self.sam["bank"] = {}
self.assertIsNone(game.work_order(self.world, self.sam, order["id"], T0))
game.process_player(self.world, self.sam, T0 + 600, random.Random(1))
self.assertEqual(order["status"], "done")
self.assertEqual(mo["bank"], {"copper_bar": 5, "logs": 5})
self.assertEqual(self.fires["forge"]["saved"], 5)
def test_warmth_goes_to_whoever_fed_the_fire(self):
self.fires["kitchen"]["fuel"] = [{"tier": 0, "left": 6000, "by": "kai"}]
self.fires["kitchen"]["at"] = T0