Crafting always adds worth: hardware rounds up, planks, provisions, barrels, fittings +20%

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
rope 2026-10-28 23:16:34 +00:00
parent 3df9f29b1d
commit 4e54c65503
2 changed files with 16 additions and 15 deletions

View file

@ -2697,10 +2697,10 @@ class WorkOrderTest(unittest.TestCase):
self.fred["bank"] = {"oak_plank": 1, "clay_core": 3}
self.assertIsNone(game.work_order(self.world, self.fred, order["id"], T0))
game.process_player(self.world, self.fred, T0 + 600, random.Random(1))
# Reagents are worth 84 a run; Dave's 2 bars (20) earn 20/84 of half the reward.
self.assertEqual(self.dave["gold"], 17)
self.assertEqual(self.fred["gold"], 123) # the requester's own bar leaves its share with the crafter
self.assertEqual(order["earned"], {"dave": 17})
# Reagents are worth 86 a run; Dave's 2 bars (20) earn 20/86 of half the reward.
self.assertEqual(self.dave["gold"], 16)
self.assertEqual(self.fred["gold"], 124) # the requester's own bar leaves its share with the crafter
self.assertEqual(order["earned"], {"dave": 16})
def test_crafter_tops_up_a_short_pool(self):
self.mike["gold"] = 200
@ -2750,9 +2750,9 @@ class WorkOrderTest(unittest.TestCase):
self.assertEqual(order["status"], "done")
self.assertEqual(self.world["city"]["stockpile"].get("iron_warhammer"), 1)
self.assertEqual(self.fred["bank"], {})
# Hammer 101: Dave's bars 20 and Mike's cores 45 as if donated, Fred the other 36.
self.assertEqual(order["favour"], {"dave": 20, "mike": 45, "fred": 36})
self.assertEqual((self.dave["favour"], self.mike["favour"], self.fred["favour"]), (20, 45, 36))
# Hammer 103: Dave's bars 20 and Mike's cores 45 as if donated, Fred the other 38.
self.assertEqual(order["favour"], {"dave": 20, "mike": 45, "fred": 38})
self.assertEqual((self.dave["favour"], self.mike["favour"], self.fred["favour"]), (20, 45, 38))
line = self.mike["ledger"][-1]
self.assertEqual((line["verb"], line["item"], line["qty"], line["label"]), ("Donated", "clay_core", 3, "City order"))