Firekeeping: tend all fires

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
rope 2026-10-27 20:11:40 +00:00
parent 6e48c72d95
commit fd85580466
3 changed files with 45 additions and 7 deletions

View file

@ -2785,6 +2785,18 @@ class FirekeepingTest(unittest.TestCase):
self.assertEqual(game.heat(self.world, "kitchen"), -1)
self.assertAlmostEqual(self.kai["xp"]["firekeeping"], 3 * game.TEND_XP[0] * game.fire_minutes(level))
def test_tending_all_feeds_the_lowest_fire_with_room(self):
self.fires["forge"].update(fuel=[{"tier": 0, "left": 600, "by": "sam"}], at=T0)
self.fires["kitchen"].update(fuel=[{"tier": 0, "left": game.fire_bank(1) * 60, "by": "kai"}], at=T0) # kai's pile is full
self.fires["kiln"].update(fuel=[{"tier": 0, "left": 300, "by": "sam"}], at=T0)
self.kai["bank"] = {"logs": 1}
self.tend(self.kai, "all", "logs", T0, 35)
self.assertEqual([chunk["by"] for chunk in self.fires["still"]["fuel"]], ["kai"]) # out, so lowest
self.kai["bank"] = {"logs": 100}
for key in ("forge", "kiln", "still"):
self.fires[key].update(fuel=[{"tier": 0, "left": game.fire_bank(1) * 60, "by": "kai"}], at=T0 + 35)
self.assertEqual(game.start_action(self.world, self.kai, "tend_all_logs", T0 + 35), "Your piles are all full")
def test_better_logs_need_the_level(self):
self.kai["bank"] = {"maple_logs": 3}
self.assertEqual(game.start_action(self.world, self.kai, "tend_forge_maple_logs", T0), "Needs level 45")