Changed equipment behaviour, now equipped items stay in the inventory
This commit is contained in:
		@@ -155,9 +155,9 @@ class TestEntities(unittest.TestCase):
 | 
			
		||||
        """
 | 
			
		||||
        item = Item()
 | 
			
		||||
        self.map.add_entity(item)
 | 
			
		||||
        self.assertFalse(item.held)
 | 
			
		||||
        self.assertIsNone(item.held_by)
 | 
			
		||||
        item.hold(self.player)
 | 
			
		||||
        self.assertTrue(item.held)
 | 
			
		||||
        self.assertEqual(item.held_by, self.player)
 | 
			
		||||
        item.drop()
 | 
			
		||||
        self.assertEqual(item.y, 1)
 | 
			
		||||
        self.assertEqual(item.x, 6)
 | 
			
		||||
@@ -165,7 +165,6 @@ class TestEntities(unittest.TestCase):
 | 
			
		||||
        # Pick up item
 | 
			
		||||
        self.player.move_left()
 | 
			
		||||
        self.player.move_right()
 | 
			
		||||
        self.assertTrue(item.held)
 | 
			
		||||
        self.assertEqual(item.held_by, self.player)
 | 
			
		||||
        self.assertIn(item, self.player.inventory)
 | 
			
		||||
        self.assertNotIn(item, self.map.entities)
 | 
			
		||||
@@ -208,7 +207,7 @@ class TestEntities(unittest.TestCase):
 | 
			
		||||
        # The player can't hold the explosion
 | 
			
		||||
        explosion.hold(self.player)
 | 
			
		||||
        self.assertNotIn(explosion, self.player.inventory)
 | 
			
		||||
        self.assertFalse(explosion.held)
 | 
			
		||||
        self.assertIsNone(explosion.held_by)
 | 
			
		||||
 | 
			
		||||
        # The explosion disappears after one tick
 | 
			
		||||
        explosion.act(self.map)
 | 
			
		||||
 
 | 
			
		||||
@@ -491,10 +491,8 @@ class TestGame(unittest.TestCase):
 | 
			
		||||
        # Drop an item
 | 
			
		||||
        bomb = self.game.player.inventory[-1]
 | 
			
		||||
        self.assertEqual(self.game.inventory_menu.validate(), bomb)
 | 
			
		||||
        self.assertTrue(bomb.held)
 | 
			
		||||
        self.assertEqual(bomb.held_by, self.game.player)
 | 
			
		||||
        self.game.handle_key_pressed(KeyValues.DROP)
 | 
			
		||||
        self.assertFalse(bomb.held)
 | 
			
		||||
        self.assertIsNone(bomb.held_by)
 | 
			
		||||
        self.assertIsNone(bomb.owner)
 | 
			
		||||
        self.assertFalse(bomb.exploding)
 | 
			
		||||
@@ -504,10 +502,8 @@ class TestGame(unittest.TestCase):
 | 
			
		||||
        # Use the bomb
 | 
			
		||||
        bomb = self.game.player.inventory[-1]
 | 
			
		||||
        self.assertEqual(self.game.inventory_menu.validate(), bomb)
 | 
			
		||||
        self.assertTrue(bomb.held)
 | 
			
		||||
        self.assertEqual(bomb.held_by, self.game.player)
 | 
			
		||||
        self.game.handle_key_pressed(KeyValues.USE)
 | 
			
		||||
        self.assertFalse(bomb.held)
 | 
			
		||||
        self.assertIsNone(bomb.held_by)
 | 
			
		||||
        self.assertEqual(bomb.owner, self.game.player)
 | 
			
		||||
        self.assertTrue(bomb.exploding)
 | 
			
		||||
@@ -660,42 +656,37 @@ class TestGame(unittest.TestCase):
 | 
			
		||||
        sword.hold(self.game.player)
 | 
			
		||||
        self.game.handle_key_pressed(KeyValues.EQUIP)
 | 
			
		||||
        self.assertEqual(self.game.player.equipped_main, sword)
 | 
			
		||||
        self.assertFalse(self.game.player.inventory)
 | 
			
		||||
 | 
			
		||||
        # shield goes into the secondary equipment slot
 | 
			
		||||
        shield = Shield()
 | 
			
		||||
        shield.hold(self.game.player)
 | 
			
		||||
        self.game.handle_key_pressed(KeyValues.EQUIP)
 | 
			
		||||
        shield.equip()
 | 
			
		||||
        self.assertEqual(self.game.player.equipped_secondary, shield)
 | 
			
		||||
        self.assertFalse(self.game.player.inventory)
 | 
			
		||||
 | 
			
		||||
        # helmet goes into the helmet slot
 | 
			
		||||
        helmet = Helmet()
 | 
			
		||||
        helmet.hold(self.game.player)
 | 
			
		||||
        self.game.handle_key_pressed(KeyValues.EQUIP)
 | 
			
		||||
        helmet.equip()
 | 
			
		||||
        self.assertEqual(self.game.player.equipped_helmet, helmet)
 | 
			
		||||
        self.assertFalse(self.game.player.inventory)
 | 
			
		||||
 | 
			
		||||
        # helmet goes into the armor slot
 | 
			
		||||
        chestplate = Chestplate()
 | 
			
		||||
        chestplate.hold(self.game.player)
 | 
			
		||||
        self.game.handle_key_pressed(KeyValues.EQUIP)
 | 
			
		||||
        chestplate.equip()
 | 
			
		||||
        self.assertEqual(self.game.player.equipped_armor, chestplate)
 | 
			
		||||
        self.assertFalse(self.game.player.inventory)
 | 
			
		||||
 | 
			
		||||
        # Use bomb
 | 
			
		||||
        bomb = Bomb()
 | 
			
		||||
        bomb.hold(self.game.player)
 | 
			
		||||
        self.game.handle_key_pressed(KeyValues.EQUIP)
 | 
			
		||||
        bomb.equip()
 | 
			
		||||
        self.assertEqual(self.game.player.equipped_secondary, bomb)
 | 
			
		||||
        self.assertIn(shield, self.game.player.inventory)
 | 
			
		||||
        self.assertFalse(shield.equipped)
 | 
			
		||||
        self.game.state = GameMode.PLAY
 | 
			
		||||
        self.game.handle_key_pressed(KeyValues.USE)
 | 
			
		||||
        self.assertIsNone(self.game.player.equipped_secondary)
 | 
			
		||||
        self.game.state = GameMode.INVENTORY
 | 
			
		||||
        self.game.handle_key_pressed(KeyValues.EQUIP)
 | 
			
		||||
        shield.equip()
 | 
			
		||||
        self.assertEqual(self.game.player.equipped_secondary, shield)
 | 
			
		||||
        self.assertFalse(self.game.player.inventory)
 | 
			
		||||
 | 
			
		||||
        # Reequip, which is useless but covers code
 | 
			
		||||
        sword.equip()
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user