Track donations per item
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
parent
45a51476a9
commit
fa960e1d6c
2 changed files with 48 additions and 19 deletions
|
|
@ -261,6 +261,26 @@ class ActionTest(unittest.TestCase):
|
|||
self.assertEqual(world["city"]["stockpile"]["stone"], 3)
|
||||
self.assertEqual(p["favour"], 1.5) # half favour for overflow
|
||||
self.assertEqual(p["donated"], 3)
|
||||
self.assertEqual(p["gave"], {"stone": {"qty": 3, "worth": 3, "favour": 1.5}})
|
||||
|
||||
def test_every_gift_is_tallied_by_item(self):
|
||||
world = world_with(("fred", "commoner"))
|
||||
p = world["players"]["fred"]
|
||||
p["bank"], p["gold"] = {"bricks": 20}, 100
|
||||
brick = game.ITEMS["bricks"]["value"]
|
||||
self.assertIsNone(game.donate(world, p, "bricks", 5, T0))
|
||||
self.assertIsNone(game.donate(world, p, "gold", 40, T0))
|
||||
self.assertIsNone(game.fund(world, p, "walls", "bricks", 3, "bank", T0))
|
||||
self.assertEqual(p["gave"]["bricks"], {"qty": 8, "worth": 8 * brick, "favour": 8 * brick})
|
||||
self.assertEqual(p["gave"]["gold"], {"qty": 40, "worth": 40, "favour": 40})
|
||||
self.assertEqual(sum(t["favour"] for t in p["gave"].values()), p["favour"])
|
||||
|
||||
def test_migrate_starts_an_empty_donation_tally(self):
|
||||
world = world_with(("fred", "commoner"))
|
||||
del world["players"]["fred"]["gave"]
|
||||
world["version"] = 33
|
||||
game.migrate(world, T0)
|
||||
self.assertEqual(world["players"]["fred"]["gave"], {})
|
||||
|
||||
def test_full_bank_sells_what_the_city_cannot_use(self):
|
||||
world = world_with(("fred", "commoner"))
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue