Mercurial > boomslang
comparison pyntnclick/tests/game_logic_utils.py @ 816:eed75a1d50c4 pyntnclick
Better Item handling.
author | Jeremy Thurgood <firxen@gmail.com> |
---|---|
date | Sun, 27 Jan 2013 22:19:39 +0200 |
parents | bdaffaa8b6bf |
children |
comparison
equal
deleted
inserted
replaced
815:8f94fbf05ab9 | 816:eed75a1d50c4 |
---|---|
35 | 35 |
36 def close_detail(self): | 36 def close_detail(self): |
37 self.scene_stack.pop() | 37 self.scene_stack.pop() |
38 self.assertTrue(len(self.scene_stack) > 0) | 38 self.assertTrue(len(self.scene_stack) > 0) |
39 | 39 |
40 def tearDown(self): | |
41 for item in self.state.items.values(): | |
42 if isinstance(item, pyntnclick.state.CloneableItem): | |
43 type(item)._counter = 0 | |
44 | |
45 def clear_event_queue(self): | 40 def clear_event_queue(self): |
46 # Since we aren't handling events, we may overflow the pygame | 41 # Since we aren't handling events, we may overflow the pygame |
47 # event buffer if we're generating a lot of events | 42 # event buffer if we're generating a lot of events |
48 pygame.event.clear() | 43 pygame.event.clear() |
49 | 44 |
78 | 73 |
79 def assert_detail_thing(self, thing, in_detail=True): | 74 def assert_detail_thing(self, thing, in_detail=True): |
80 self.assertEquals(in_detail, thing in self.scene_stack[-1].things) | 75 self.assertEquals(in_detail, thing in self.scene_stack[-1].things) |
81 | 76 |
82 def assert_item_exists(self, item, exists=True): | 77 def assert_item_exists(self, item, exists=True): |
83 self.assertEquals(exists, item in self.state.items) | 78 try: |
79 self.state.get_item(item) | |
80 self.assertTrue(exists) | |
81 except: | |
82 self.assertFalse(exists) | |
84 | 83 |
85 def assert_current_scene(self, scene): | 84 def assert_current_scene(self, scene): |
86 self.assertEquals(scene, self.state.get_current_scene().name) | 85 self.assertEquals(scene, self.state.get_current_scene().name) |
87 | 86 |
88 def handle_result(self, result): | 87 def handle_result(self, result): |
97 | 96 |
98 def interact_thing(self, thing, item=None, detail=None): | 97 def interact_thing(self, thing, item=None, detail=None): |
99 item_obj = None | 98 item_obj = None |
100 if item is not None: | 99 if item is not None: |
101 self.assert_inventory_item(item) | 100 self.assert_inventory_item(item) |
102 item_obj = self.state.items[item] | 101 item_obj = self.state.get_item(item) |
103 thing_container = self.scene_stack[-1] | 102 thing_container = self.scene_stack[-1] |
104 if detail is not None: | 103 if detail is not None: |
105 self.assertEqual(detail, thing_container.name) | 104 self.assertEqual(detail, thing_container.name) |
106 result = thing_container.things[thing].interact(item_obj) | 105 result = thing_container.things[thing].interact(item_obj) |
107 return self.handle_result(result) | 106 return self.handle_result(result) |
108 | 107 |
109 def interact_item(self, target_item, item): | 108 def interact_item(self, target_item, item): |
110 self.assert_inventory_item(target_item) | 109 self.assert_inventory_item(target_item) |
111 item_obj = self.state.items[item] | 110 item_obj = self.state.get_item(item) |
112 target_obj = self.state.items[target_item] | 111 target_obj = self.state.get_item(target_item) |
113 result = target_obj.interact(item_obj) | 112 result = target_obj.interact(item_obj) |
114 return self.handle_result(result) | 113 return self.handle_result(result) |